/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- KILLED proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 582 ms] (4) CpxRelTRS (5) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) typed CpxTrs (9) OrderProof [LOWER BOUND(ID), 5 ms] (10) typed CpxTrs (11) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (12) TRS for Loop Detection (13) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (14) CpxTRS (15) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (16) CpxRelTRS (17) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxWeightedTrs (19) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxTypedWeightedTrs (21) CompletionProof [UPPER BOUND(ID), 0 ms] (22) CpxTypedWeightedCompleteTrs (23) NarrowingProof [BOTH BOUNDS(ID, ID), 57.7 s] (24) CpxTypedWeightedCompleteTrs (25) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 35 ms] (26) CpxRNTS (27) SimplificationProof [BOTH BOUNDS(ID, ID), 9 ms] (28) CpxRNTS (29) CompletionProof [UPPER BOUND(ID), 5 ms] (30) CpxTypedWeightedCompleteTrs (31) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 26 ms] (32) CpxRNTS (33) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (34) CdtProblem (35) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 4 ms] (40) CdtProblem (41) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (42) CdtProblem (43) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 40 ms] (44) CdtProblem (45) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CdtProblem (49) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CdtProblem (51) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 4 ms] (52) CdtProblem (53) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 49 ms] (68) CdtProblem (69) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CdtProblem (71) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 36 ms] (72) CdtProblem (73) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 37 ms] (76) CdtProblem (77) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 173 ms] (80) CdtProblem (81) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 52 ms] (82) CdtProblem (83) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 117 ms] (84) CdtProblem (85) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (86) CdtProblem (87) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 148 ms] (88) CdtProblem (89) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 45 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 4 ms] (94) CdtProblem (95) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 24 ms] (96) CdtProblem (97) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 27 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 49 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 24 ms] (106) CdtProblem (107) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 46 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 104 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 151 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 37 ms] (114) CdtProblem (115) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 58 ms] (118) CdtProblem (119) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 20 ms] (122) CdtProblem (123) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 4 ms] (124) CdtProblem (125) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 6 ms] (126) CdtProblem (127) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16 ms] (134) CdtProblem (135) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (136) CdtProblem (137) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 25 ms] (140) CdtProblem (141) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 37 ms] (144) CdtProblem (145) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 32 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15 ms] (148) CdtProblem (149) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 32 ms] (150) CdtProblem (151) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 44 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (156) CdtProblem (157) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 25 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 59 ms] (160) CdtProblem (161) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 14 ms] (162) CdtProblem ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0) -> active(0) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0 encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0) -> active(0) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) The (relative) TRS S consists of the following rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0 encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0) -> active(0) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) The (relative) TRS S consists of the following rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0 encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0'))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0') -> active(0') mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) The (relative) TRS S consists of the following rules: encArg(primes) -> primes encArg(0') -> 0' encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0' encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: active(primes) -> mark(sieve(from(s(s(0'))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0') -> active(0') mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) encArg(primes) -> primes encArg(0') -> 0' encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0' encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) Types: active :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides primes :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides mark :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides sieve :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides from :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides s :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides 0' :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides head :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides tail :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides if :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides true :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides false :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides filter :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides divides :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encArg :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_active :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_mark :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_sieve :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_from :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_s :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_cons :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_head :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_tail :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_if :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_filter :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_divides :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_active :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_primes :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_mark :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_sieve :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_from :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_s :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_0 :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_cons :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_head :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_tail :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_if :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_true :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_false :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_filter :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_divides :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides hole_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides1_4 :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides gen_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides2_4 :: Nat -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: active, mark, sieve, from, s, cons, if, divides, filter, head, tail, encArg They will be analysed ascendingly in the following order: active = mark sieve < active from < active s < active cons < active if < active divides < active filter < active active < encArg sieve < mark from < mark s < mark cons < mark if < mark divides < mark filter < mark head < mark tail < mark mark < encArg sieve < encArg from < encArg s < encArg cons < encArg if < encArg divides < encArg filter < encArg head < encArg tail < encArg ---------------------------------------- (10) Obligation: Innermost TRS: Rules: active(primes) -> mark(sieve(from(s(s(0'))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0') -> active(0') mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) encArg(primes) -> primes encArg(0') -> 0' encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0' encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) Types: active :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides primes :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides mark :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides sieve :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides from :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides s :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides 0' :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides head :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides tail :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides if :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides true :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides false :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides filter :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides divides :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encArg :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_active :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_mark :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_sieve :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_from :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_s :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_cons :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_head :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_tail :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_if :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_filter :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_divides :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_active :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_primes :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_mark :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_sieve :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_from :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_s :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_0 :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_cons :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_head :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_tail :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_if :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_true :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_false :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_filter :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_divides :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides hole_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides1_4 :: primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides gen_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides2_4 :: Nat -> primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides Generator Equations: gen_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides2_4(0) <=> primes gen_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides2_4(+(x, 1)) <=> cons_active(gen_primes:0':true:false:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides2_4(x)) The following defined symbols remain to be analysed: sieve, active, mark, from, s, cons, if, divides, filter, head, tail, encArg They will be analysed ascendingly in the following order: active = mark sieve < active from < active s < active cons < active if < active divides < active filter < active active < encArg sieve < mark from < mark s < mark cons < mark if < mark divides < mark filter < mark head < mark tail < mark mark < encArg sieve < encArg from < encArg s < encArg cons < encArg if < encArg divides < encArg filter < encArg head < encArg tail < encArg ---------------------------------------- (11) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (12) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0) -> active(0) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) The (relative) TRS S consists of the following rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0 encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (13) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (14) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) active(from(X)) -> mark(cons(X, from(s(X)))) active(head(cons(X, Y))) -> mark(X) active(tail(cons(X, Y))) -> mark(Y) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) active(filter(s(s(X)), cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) mark(primes) -> active(primes) mark(sieve(X)) -> active(sieve(mark(X))) mark(from(X)) -> active(from(mark(X))) mark(s(X)) -> active(s(mark(X))) mark(0) -> active(0) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) mark(divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) sieve(mark(X)) -> sieve(X) sieve(active(X)) -> sieve(X) from(mark(X)) -> from(X) from(active(X)) -> from(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) filter(mark(X1), X2) -> filter(X1, X2) filter(X1, mark(X2)) -> filter(X1, X2) filter(active(X1), X2) -> filter(X1, X2) filter(X1, active(X2)) -> filter(X1, X2) divides(mark(X1), X2) -> divides(X1, X2) divides(X1, mark(X2)) -> divides(X1, X2) divides(active(X1), X2) -> divides(X1, X2) divides(X1, active(X2)) -> divides(X1, X2) encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0 encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (15) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (16) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) mark(primes) -> active(primes) mark(0) -> active(0) mark(true) -> active(true) mark(false) -> active(false) mark(c_head(X)) -> active(head(mark(X))) filter(X1, c_active(X2)) -> filter(X1, X2) from(c_mark(X)) -> from(X) active(c_head(c_cons(X, Y))) -> mark(X) filter(c_mark(X1), X2) -> filter(X1, X2) tail(c_mark(X)) -> tail(X) divides(X1, c_mark(X2)) -> divides(X1, X2) if(c_mark(X1), X2, X3) -> if(X1, X2, X3) mark(c_tail(X)) -> active(tail(mark(X))) sieve(c_mark(X)) -> sieve(X) if(X1, c_active(X2), X3) -> if(X1, X2, X3) mark(c_s(X)) -> active(s(mark(X))) active(c_if(true, X, Y)) -> mark(X) mark(c_from(X)) -> active(from(mark(X))) s(c_active(X)) -> s(X) cons(c_mark(X1), X2) -> cons(X1, X2) if(X1, X2, c_mark(X3)) -> if(X1, X2, X3) sieve(c_active(X)) -> sieve(X) if(X1, X2, c_active(X3)) -> if(X1, X2, X3) divides(c_active(X1), X2) -> divides(X1, X2) cons(X1, c_active(X2)) -> cons(X1, X2) head(c_active(X)) -> head(X) mark(c_filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) cons(X1, c_mark(X2)) -> cons(X1, X2) active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) if(X1, c_mark(X2), X3) -> if(X1, X2, X3) from(c_active(X)) -> from(X) tail(c_active(X)) -> tail(X) s(c_mark(X)) -> s(X) mark(c_sieve(X)) -> active(sieve(mark(X))) filter(X1, c_mark(X2)) -> filter(X1, X2) divides(c_mark(X1), X2) -> divides(X1, X2) mark(c_if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) active(c_filter(c_s(c_s(X)), c_cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(c_tail(c_cons(X, Y))) -> mark(Y) filter(c_active(X1), X2) -> filter(X1, X2) head(c_mark(X)) -> head(X) cons(c_active(X1), X2) -> cons(X1, X2) active(c_if(false, X, Y)) -> mark(Y) mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) active(c_from(X)) -> mark(cons(X, from(s(X)))) divides(X1, c_active(X2)) -> divides(X1, X2) mark(c_divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) if(c_active(X1), X2, X3) -> if(X1, X2, X3) The (relative) TRS S consists of the following rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_from(x_1)) -> from(encArg(x_1)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_primes -> primes encode_mark(x_1) -> mark(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_from(x_1) -> from(encArg(x_1)) encode_s(x_1) -> s(encArg(x_1)) encode_0 -> 0 encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_false -> false encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) tail(x0) -> c_tail(x0) s(x0) -> c_s(x0) active(x0) -> c_active(x0) filter(x0, x1) -> c_filter(x0, x1) divides(x0, x1) -> c_divides(x0, x1) if(x0, x1, x2) -> c_if(x0, x1, x2) head(x0) -> c_head(x0) cons(x0, x1) -> c_cons(x0, x1) sieve(x0) -> c_sieve(x0) from(x0) -> c_from(x0) mark(x0) -> c_mark(x0) Rewrite Strategy: INNERMOST ---------------------------------------- (17) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (18) 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: active(primes) -> mark(sieve(from(s(s(0))))) [1] mark(primes) -> active(primes) [1] mark(0) -> active(0) [1] mark(true) -> active(true) [1] mark(false) -> active(false) [1] mark(c_head(X)) -> active(head(mark(X))) [1] filter(X1, c_active(X2)) -> filter(X1, X2) [1] from(c_mark(X)) -> from(X) [1] active(c_head(c_cons(X, Y))) -> mark(X) [1] filter(c_mark(X1), X2) -> filter(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] divides(X1, c_mark(X2)) -> divides(X1, X2) [1] if(c_mark(X1), X2, X3) -> if(X1, X2, X3) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] sieve(c_mark(X)) -> sieve(X) [1] if(X1, c_active(X2), X3) -> if(X1, X2, X3) [1] mark(c_s(X)) -> active(s(mark(X))) [1] active(c_if(true, X, Y)) -> mark(X) [1] mark(c_from(X)) -> active(from(mark(X))) [1] s(c_active(X)) -> s(X) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] if(X1, X2, c_mark(X3)) -> if(X1, X2, X3) [1] sieve(c_active(X)) -> sieve(X) [1] if(X1, X2, c_active(X3)) -> if(X1, X2, X3) [1] divides(c_active(X1), X2) -> divides(X1, X2) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] head(c_active(X)) -> head(X) [1] mark(c_filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) [1] if(X1, c_mark(X2), X3) -> if(X1, X2, X3) [1] from(c_active(X)) -> from(X) [1] tail(c_active(X)) -> tail(X) [1] s(c_mark(X)) -> s(X) [1] mark(c_sieve(X)) -> active(sieve(mark(X))) [1] filter(X1, c_mark(X2)) -> filter(X1, X2) [1] divides(c_mark(X1), X2) -> divides(X1, X2) [1] mark(c_if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) [1] active(c_filter(c_s(c_s(X)), c_cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) [1] active(c_tail(c_cons(X, Y))) -> mark(Y) [1] filter(c_active(X1), X2) -> filter(X1, X2) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] active(c_if(false, X, Y)) -> mark(Y) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_from(X)) -> mark(cons(X, from(s(X)))) [1] divides(X1, c_active(X2)) -> divides(X1, X2) [1] mark(c_divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) [1] if(c_active(X1), X2, X3) -> if(X1, X2, X3) [1] encArg(primes) -> primes [0] encArg(0) -> 0 [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) [0] encArg(cons_from(x_1)) -> from(encArg(x_1)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) [0] encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_primes -> primes [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_sieve(x_1) -> sieve(encArg(x_1)) [0] encode_from(x_1) -> from(encArg(x_1)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_0 -> 0 [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_false -> false [0] encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) [0] encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] filter(x0, x1) -> c_filter(x0, x1) [0] divides(x0, x1) -> c_divides(x0, x1) [0] if(x0, x1, x2) -> c_if(x0, x1, x2) [0] head(x0) -> c_head(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] sieve(x0) -> c_sieve(x0) [0] from(x0) -> c_from(x0) [0] mark(x0) -> c_mark(x0) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (19) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (20) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(s(0))))) [1] mark(primes) -> active(primes) [1] mark(0) -> active(0) [1] mark(true) -> active(true) [1] mark(false) -> active(false) [1] mark(c_head(X)) -> active(head(mark(X))) [1] filter(X1, c_active(X2)) -> filter(X1, X2) [1] from(c_mark(X)) -> from(X) [1] active(c_head(c_cons(X, Y))) -> mark(X) [1] filter(c_mark(X1), X2) -> filter(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] divides(X1, c_mark(X2)) -> divides(X1, X2) [1] if(c_mark(X1), X2, X3) -> if(X1, X2, X3) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] sieve(c_mark(X)) -> sieve(X) [1] if(X1, c_active(X2), X3) -> if(X1, X2, X3) [1] mark(c_s(X)) -> active(s(mark(X))) [1] active(c_if(true, X, Y)) -> mark(X) [1] mark(c_from(X)) -> active(from(mark(X))) [1] s(c_active(X)) -> s(X) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] if(X1, X2, c_mark(X3)) -> if(X1, X2, X3) [1] sieve(c_active(X)) -> sieve(X) [1] if(X1, X2, c_active(X3)) -> if(X1, X2, X3) [1] divides(c_active(X1), X2) -> divides(X1, X2) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] head(c_active(X)) -> head(X) [1] mark(c_filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) [1] if(X1, c_mark(X2), X3) -> if(X1, X2, X3) [1] from(c_active(X)) -> from(X) [1] tail(c_active(X)) -> tail(X) [1] s(c_mark(X)) -> s(X) [1] mark(c_sieve(X)) -> active(sieve(mark(X))) [1] filter(X1, c_mark(X2)) -> filter(X1, X2) [1] divides(c_mark(X1), X2) -> divides(X1, X2) [1] mark(c_if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) [1] active(c_filter(c_s(c_s(X)), c_cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) [1] active(c_tail(c_cons(X, Y))) -> mark(Y) [1] filter(c_active(X1), X2) -> filter(X1, X2) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] active(c_if(false, X, Y)) -> mark(Y) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_from(X)) -> mark(cons(X, from(s(X)))) [1] divides(X1, c_active(X2)) -> divides(X1, X2) [1] mark(c_divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) [1] if(c_active(X1), X2, X3) -> if(X1, X2, X3) [1] encArg(primes) -> primes [0] encArg(0) -> 0 [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) [0] encArg(cons_from(x_1)) -> from(encArg(x_1)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) [0] encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_primes -> primes [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_sieve(x_1) -> sieve(encArg(x_1)) [0] encode_from(x_1) -> from(encArg(x_1)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_0 -> 0 [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_false -> false [0] encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) [0] encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] filter(x0, x1) -> c_filter(x0, x1) [0] divides(x0, x1) -> c_divides(x0, x1) [0] if(x0, x1, x2) -> c_if(x0, x1, x2) [0] head(x0) -> c_head(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] sieve(x0) -> c_sieve(x0) [0] from(x0) -> c_from(x0) [0] mark(x0) -> c_mark(x0) [0] The TRS has the following type information: active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides 0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides c_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides cons_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides Rewrite Strategy: INNERMOST ---------------------------------------- (21) 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: none (c) The following functions are completely defined: encArg_1 encode_active_1 encode_primes encode_mark_1 encode_sieve_1 encode_from_1 encode_s_1 encode_0 encode_cons_2 encode_head_1 encode_tail_1 encode_if_3 encode_true encode_false encode_filter_2 encode_divides_2 tail_1 s_1 active_1 filter_2 divides_2 if_3 head_1 cons_2 sieve_1 from_1 mark_1 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_primes -> null_encode_primes [0] encode_mark(v0) -> null_encode_mark [0] encode_sieve(v0) -> null_encode_sieve [0] encode_from(v0) -> null_encode_from [0] encode_s(v0) -> null_encode_s [0] encode_0 -> null_encode_0 [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_if(v0, v1, v2) -> null_encode_if [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_filter(v0, v1) -> null_encode_filter [0] encode_divides(v0, v1) -> null_encode_divides [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] filter(v0, v1) -> null_filter [0] divides(v0, v1) -> null_divides [0] if(v0, v1, v2) -> null_if [0] head(v0) -> null_head [0] cons(v0, v1) -> null_cons [0] sieve(v0) -> null_sieve [0] from(v0) -> null_from [0] mark(v0) -> null_mark [0] And the following fresh constants: null_encArg, null_encode_active, null_encode_primes, null_encode_mark, null_encode_sieve, null_encode_from, null_encode_s, null_encode_0, null_encode_cons, null_encode_head, null_encode_tail, null_encode_if, null_encode_true, null_encode_false, null_encode_filter, null_encode_divides, null_tail, null_s, null_active, null_filter, null_divides, null_if, null_head, null_cons, null_sieve, null_from, null_mark ---------------------------------------- (22) 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: active(primes) -> mark(sieve(from(s(s(0))))) [1] mark(primes) -> active(primes) [1] mark(0) -> active(0) [1] mark(true) -> active(true) [1] mark(false) -> active(false) [1] mark(c_head(X)) -> active(head(mark(X))) [1] filter(X1, c_active(X2)) -> filter(X1, X2) [1] from(c_mark(X)) -> from(X) [1] active(c_head(c_cons(X, Y))) -> mark(X) [1] filter(c_mark(X1), X2) -> filter(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] divides(X1, c_mark(X2)) -> divides(X1, X2) [1] if(c_mark(X1), X2, X3) -> if(X1, X2, X3) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] sieve(c_mark(X)) -> sieve(X) [1] if(X1, c_active(X2), X3) -> if(X1, X2, X3) [1] mark(c_s(X)) -> active(s(mark(X))) [1] active(c_if(true, X, Y)) -> mark(X) [1] mark(c_from(X)) -> active(from(mark(X))) [1] s(c_active(X)) -> s(X) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] if(X1, X2, c_mark(X3)) -> if(X1, X2, X3) [1] sieve(c_active(X)) -> sieve(X) [1] if(X1, X2, c_active(X3)) -> if(X1, X2, X3) [1] divides(c_active(X1), X2) -> divides(X1, X2) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] head(c_active(X)) -> head(X) [1] mark(c_filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) [1] if(X1, c_mark(X2), X3) -> if(X1, X2, X3) [1] from(c_active(X)) -> from(X) [1] tail(c_active(X)) -> tail(X) [1] s(c_mark(X)) -> s(X) [1] mark(c_sieve(X)) -> active(sieve(mark(X))) [1] filter(X1, c_mark(X2)) -> filter(X1, X2) [1] divides(c_mark(X1), X2) -> divides(X1, X2) [1] mark(c_if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) [1] active(c_filter(c_s(c_s(X)), c_cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) [1] active(c_tail(c_cons(X, Y))) -> mark(Y) [1] filter(c_active(X1), X2) -> filter(X1, X2) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] active(c_if(false, X, Y)) -> mark(Y) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_from(X)) -> mark(cons(X, from(s(X)))) [1] divides(X1, c_active(X2)) -> divides(X1, X2) [1] mark(c_divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) [1] if(c_active(X1), X2, X3) -> if(X1, X2, X3) [1] encArg(primes) -> primes [0] encArg(0) -> 0 [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) [0] encArg(cons_from(x_1)) -> from(encArg(x_1)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) [0] encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_primes -> primes [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_sieve(x_1) -> sieve(encArg(x_1)) [0] encode_from(x_1) -> from(encArg(x_1)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_0 -> 0 [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_false -> false [0] encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) [0] encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] filter(x0, x1) -> c_filter(x0, x1) [0] divides(x0, x1) -> c_divides(x0, x1) [0] if(x0, x1, x2) -> c_if(x0, x1, x2) [0] head(x0) -> c_head(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] sieve(x0) -> c_sieve(x0) [0] from(x0) -> c_from(x0) [0] mark(x0) -> c_mark(x0) [0] encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_primes -> null_encode_primes [0] encode_mark(v0) -> null_encode_mark [0] encode_sieve(v0) -> null_encode_sieve [0] encode_from(v0) -> null_encode_from [0] encode_s(v0) -> null_encode_s [0] encode_0 -> null_encode_0 [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_if(v0, v1, v2) -> null_encode_if [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_filter(v0, v1) -> null_encode_filter [0] encode_divides(v0, v1) -> null_encode_divides [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] filter(v0, v1) -> null_filter [0] divides(v0, v1) -> null_divides [0] if(v0, v1, v2) -> null_if [0] head(v0) -> null_head [0] cons(v0, v1) -> null_cons [0] sieve(v0) -> null_sieve [0] from(v0) -> null_from [0] mark(v0) -> null_mark [0] The TRS has the following type information: active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark 0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark Rewrite Strategy: INNERMOST ---------------------------------------- (23) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (24) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: active(primes) -> mark(sieve(from(s(c_s(0))))) [1] active(primes) -> mark(sieve(from(s(null_s)))) [1] mark(primes) -> active(primes) [1] mark(0) -> active(0) [1] mark(true) -> active(true) [1] mark(false) -> active(false) [1] mark(c_head(primes)) -> active(head(active(primes))) [2] mark(c_head(0)) -> active(head(active(0))) [2] mark(c_head(true)) -> active(head(active(true))) [2] mark(c_head(false)) -> active(head(active(false))) [2] mark(c_head(c_head(X'))) -> active(head(active(head(mark(X'))))) [2] mark(c_head(c_tail(X''))) -> active(head(active(tail(mark(X''))))) [2] mark(c_head(c_s(X4))) -> active(head(active(s(mark(X4))))) [2] mark(c_head(c_from(X5))) -> active(head(active(from(mark(X5))))) [2] mark(c_head(c_filter(X1', X2'))) -> active(head(active(filter(mark(X1'), mark(X2'))))) [2] mark(c_head(c_sieve(X6))) -> active(head(active(sieve(mark(X6))))) [2] mark(c_head(c_if(X1'', X2'', X3'))) -> active(head(active(if(mark(X1''), X2'', X3')))) [2] mark(c_head(c_cons(X11, X21))) -> active(head(active(cons(mark(X11), X21)))) [2] mark(c_head(c_divides(X12, X22))) -> active(head(active(divides(mark(X12), mark(X22))))) [2] mark(c_head(X)) -> active(head(c_mark(X))) [1] mark(c_head(X)) -> active(head(null_mark)) [1] filter(X1, c_active(X2)) -> filter(X1, X2) [1] from(c_mark(X)) -> from(X) [1] active(c_head(c_cons(X, Y))) -> mark(X) [1] filter(c_mark(X1), X2) -> filter(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] divides(X1, c_mark(X2)) -> divides(X1, X2) [1] if(c_mark(X1), X2, X3) -> if(X1, X2, X3) [1] mark(c_tail(primes)) -> active(tail(active(primes))) [2] mark(c_tail(0)) -> active(tail(active(0))) [2] mark(c_tail(true)) -> active(tail(active(true))) [2] mark(c_tail(false)) -> active(tail(active(false))) [2] mark(c_tail(c_head(X7))) -> active(tail(active(head(mark(X7))))) [2] mark(c_tail(c_tail(X8))) -> active(tail(active(tail(mark(X8))))) [2] mark(c_tail(c_s(X9))) -> active(tail(active(s(mark(X9))))) [2] mark(c_tail(c_from(X10))) -> active(tail(active(from(mark(X10))))) [2] mark(c_tail(c_filter(X13, X23))) -> active(tail(active(filter(mark(X13), mark(X23))))) [2] mark(c_tail(c_sieve(X14))) -> active(tail(active(sieve(mark(X14))))) [2] mark(c_tail(c_if(X15, X24, X3''))) -> active(tail(active(if(mark(X15), X24, X3'')))) [2] mark(c_tail(c_cons(X16, X25))) -> active(tail(active(cons(mark(X16), X25)))) [2] mark(c_tail(c_divides(X17, X26))) -> active(tail(active(divides(mark(X17), mark(X26))))) [2] mark(c_tail(X)) -> active(tail(c_mark(X))) [1] mark(c_tail(X)) -> active(tail(null_mark)) [1] sieve(c_mark(X)) -> sieve(X) [1] if(X1, c_active(X2), X3) -> if(X1, X2, X3) [1] mark(c_s(primes)) -> active(s(active(primes))) [2] mark(c_s(0)) -> active(s(active(0))) [2] mark(c_s(true)) -> active(s(active(true))) [2] mark(c_s(false)) -> active(s(active(false))) [2] mark(c_s(c_head(X18))) -> active(s(active(head(mark(X18))))) [2] mark(c_s(c_tail(X19))) -> active(s(active(tail(mark(X19))))) [2] mark(c_s(c_s(X20))) -> active(s(active(s(mark(X20))))) [2] mark(c_s(c_from(X27))) -> active(s(active(from(mark(X27))))) [2] mark(c_s(c_filter(X110, X28))) -> active(s(active(filter(mark(X110), mark(X28))))) [2] mark(c_s(c_sieve(X29))) -> active(s(active(sieve(mark(X29))))) [2] mark(c_s(c_if(X111, X210, X31))) -> active(s(active(if(mark(X111), X210, X31)))) [2] mark(c_s(c_cons(X112, X211))) -> active(s(active(cons(mark(X112), X211)))) [2] mark(c_s(c_divides(X113, X212))) -> active(s(active(divides(mark(X113), mark(X212))))) [2] mark(c_s(X)) -> active(s(c_mark(X))) [1] mark(c_s(X)) -> active(s(null_mark)) [1] active(c_if(true, X, Y)) -> mark(X) [1] mark(c_from(primes)) -> active(from(active(primes))) [2] mark(c_from(0)) -> active(from(active(0))) [2] mark(c_from(true)) -> active(from(active(true))) [2] mark(c_from(false)) -> active(from(active(false))) [2] mark(c_from(c_head(X30))) -> active(from(active(head(mark(X30))))) [2] mark(c_from(c_tail(X32))) -> active(from(active(tail(mark(X32))))) [2] mark(c_from(c_s(X33))) -> active(from(active(s(mark(X33))))) [2] mark(c_from(c_from(X34))) -> active(from(active(from(mark(X34))))) [2] mark(c_from(c_filter(X114, X213))) -> active(from(active(filter(mark(X114), mark(X213))))) [2] mark(c_from(c_sieve(X35))) -> active(from(active(sieve(mark(X35))))) [2] mark(c_from(c_if(X115, X214, X36))) -> active(from(active(if(mark(X115), X214, X36)))) [2] mark(c_from(c_cons(X116, X215))) -> active(from(active(cons(mark(X116), X215)))) [2] mark(c_from(c_divides(X117, X216))) -> active(from(active(divides(mark(X117), mark(X216))))) [2] mark(c_from(X)) -> active(from(c_mark(X))) [1] mark(c_from(X)) -> active(from(null_mark)) [1] s(c_active(X)) -> s(X) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] if(X1, X2, c_mark(X3)) -> if(X1, X2, X3) [1] sieve(c_active(X)) -> sieve(X) [1] if(X1, X2, c_active(X3)) -> if(X1, X2, X3) [1] divides(c_active(X1), X2) -> divides(X1, X2) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] head(c_active(X)) -> head(X) [1] mark(c_filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] active(c_sieve(c_cons(X, c_mark(X189)))) -> mark(cons(X, filter(X, sieve(X189)))) [2] active(c_sieve(c_cons(X, c_active(X190)))) -> mark(cons(X, filter(X, sieve(X190)))) [2] active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, c_sieve(Y)))) [1] active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, null_sieve))) [1] if(X1, c_mark(X2), X3) -> if(X1, X2, X3) [1] from(c_active(X)) -> from(X) [1] tail(c_active(X)) -> tail(X) [1] s(c_mark(X)) -> s(X) [1] mark(c_sieve(primes)) -> active(sieve(active(primes))) [2] mark(c_sieve(0)) -> active(sieve(active(0))) [2] mark(c_sieve(true)) -> active(sieve(active(true))) [2] mark(c_sieve(false)) -> active(sieve(active(false))) [2] mark(c_sieve(c_head(X191))) -> active(sieve(active(head(mark(X191))))) [2] mark(c_sieve(c_tail(X192))) -> active(sieve(active(tail(mark(X192))))) [2] mark(c_sieve(c_s(X193))) -> active(sieve(active(s(mark(X193))))) [2] mark(c_sieve(c_from(X194))) -> active(sieve(active(from(mark(X194))))) [2] mark(c_sieve(c_filter(X195, X281))) -> active(sieve(active(filter(mark(X195), mark(X281))))) [2] mark(c_sieve(c_sieve(X196))) -> active(sieve(active(sieve(mark(X196))))) [2] mark(c_sieve(c_if(X197, X282, X326))) -> active(sieve(active(if(mark(X197), X282, X326)))) [2] mark(c_sieve(c_cons(X198, X283))) -> active(sieve(active(cons(mark(X198), X283)))) [2] mark(c_sieve(c_divides(X199, X284))) -> active(sieve(active(divides(mark(X199), mark(X284))))) [2] mark(c_sieve(X)) -> active(sieve(c_mark(X))) [1] mark(c_sieve(X)) -> active(sieve(null_mark)) [1] filter(X1, c_mark(X2)) -> filter(X1, X2) [1] divides(c_mark(X1), X2) -> divides(X1, X2) [1] mark(c_if(primes, X2, X3)) -> active(if(active(primes), X2, X3)) [2] mark(c_if(0, X2, X3)) -> active(if(active(0), X2, X3)) [2] mark(c_if(true, X2, X3)) -> active(if(active(true), X2, X3)) [2] mark(c_if(false, X2, X3)) -> active(if(active(false), X2, X3)) [2] mark(c_if(c_head(X200), X2, X3)) -> active(if(active(head(mark(X200))), X2, X3)) [2] mark(c_if(c_tail(X201), X2, X3)) -> active(if(active(tail(mark(X201))), X2, X3)) [2] mark(c_if(c_s(X202), X2, X3)) -> active(if(active(s(mark(X202))), X2, X3)) [2] mark(c_if(c_from(X203), X2, X3)) -> active(if(active(from(mark(X203))), X2, X3)) [2] mark(c_if(c_filter(X1100, X285), X2, X3)) -> active(if(active(filter(mark(X1100), mark(X285))), X2, X3)) [2] mark(c_if(c_sieve(X204), X2, X3)) -> active(if(active(sieve(mark(X204))), X2, X3)) [2] mark(c_if(c_if(X1101, X286, X327), X2, X3)) -> active(if(active(if(mark(X1101), X286, X327)), X2, X3)) [2] mark(c_if(c_cons(X1102, X287), X2, X3)) -> active(if(active(cons(mark(X1102), X287)), X2, X3)) [2] mark(c_if(c_divides(X1103, X288), X2, X3)) -> active(if(active(divides(mark(X1103), mark(X288))), X2, X3)) [2] mark(c_if(X1, X2, X3)) -> active(if(c_mark(X1), X2, X3)) [1] mark(c_if(X1, X2, X3)) -> active(if(null_mark, X2, X3)) [1] active(c_filter(c_s(c_s(X)), c_cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) [1] active(c_tail(c_cons(X, Y))) -> mark(Y) [1] filter(c_active(X1), X2) -> filter(X1, X2) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] active(c_if(false, X, Y)) -> mark(Y) [1] mark(c_cons(primes, X2)) -> active(cons(active(primes), X2)) [2] mark(c_cons(0, X2)) -> active(cons(active(0), X2)) [2] mark(c_cons(true, X2)) -> active(cons(active(true), X2)) [2] mark(c_cons(false, X2)) -> active(cons(active(false), X2)) [2] mark(c_cons(c_head(X336), X2)) -> active(cons(active(head(mark(X336))), X2)) [2] mark(c_cons(c_tail(X337), X2)) -> active(cons(active(tail(mark(X337))), X2)) [2] mark(c_cons(c_s(X338), X2)) -> active(cons(active(s(mark(X338))), X2)) [2] mark(c_cons(c_from(X339), X2)) -> active(cons(active(from(mark(X339))), X2)) [2] mark(c_cons(c_filter(X1104, X2100), X2)) -> active(cons(active(filter(mark(X1104), mark(X2100))), X2)) [2] mark(c_cons(c_sieve(X340), X2)) -> active(cons(active(sieve(mark(X340))), X2)) [2] mark(c_cons(c_if(X1105, X2101, X341), X2)) -> active(cons(active(if(mark(X1105), X2101, X341)), X2)) [2] mark(c_cons(c_cons(X1106, X2102), X2)) -> active(cons(active(cons(mark(X1106), X2102)), X2)) [2] mark(c_cons(c_divides(X1107, X2103), X2)) -> active(cons(active(divides(mark(X1107), mark(X2103))), X2)) [2] mark(c_cons(X1, X2)) -> active(cons(c_mark(X1), X2)) [1] mark(c_cons(X1, X2)) -> active(cons(null_mark, X2)) [1] active(c_from(c_active(X342))) -> mark(cons(c_active(X342), from(s(X342)))) [2] active(c_from(c_mark(X343))) -> mark(cons(c_mark(X343), from(s(X343)))) [2] active(c_from(X)) -> mark(cons(X, from(c_s(X)))) [1] active(c_from(X)) -> mark(cons(X, from(null_s))) [1] divides(X1, c_active(X2)) -> divides(X1, X2) [1] mark(c_divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) [1] if(c_active(X1), X2, X3) -> if(X1, X2, X3) [1] encArg(primes) -> primes [0] encArg(0) -> 0 [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_active(primes)) -> active(primes) [0] encArg(cons_active(0)) -> active(0) [0] encArg(cons_active(true)) -> active(true) [0] encArg(cons_active(false)) -> active(false) [0] encArg(cons_active(cons_active(x_1'))) -> active(active(encArg(x_1'))) [0] encArg(cons_active(cons_mark(x_1''))) -> active(mark(encArg(x_1''))) [0] encArg(cons_active(cons_sieve(x_11))) -> active(sieve(encArg(x_11))) [0] encArg(cons_active(cons_from(x_12))) -> active(from(encArg(x_12))) [0] encArg(cons_active(cons_s(x_13))) -> active(s(encArg(x_13))) [0] encArg(cons_active(cons_cons(x_14, x_2'))) -> active(cons(encArg(x_14), encArg(x_2'))) [0] encArg(cons_active(cons_head(x_15))) -> active(head(encArg(x_15))) [0] encArg(cons_active(cons_tail(x_16))) -> active(tail(encArg(x_16))) [0] encArg(cons_active(cons_if(x_17, x_2'', x_3'))) -> active(if(encArg(x_17), encArg(x_2''), encArg(x_3'))) [0] encArg(cons_active(cons_filter(x_18, x_21))) -> active(filter(encArg(x_18), encArg(x_21))) [0] encArg(cons_active(cons_divides(x_19, x_22))) -> active(divides(encArg(x_19), encArg(x_22))) [0] encArg(cons_active(x_1)) -> active(null_encArg) [0] encArg(cons_mark(primes)) -> mark(primes) [0] encArg(cons_mark(0)) -> mark(0) [0] encArg(cons_mark(true)) -> mark(true) [0] encArg(cons_mark(false)) -> mark(false) [0] encArg(cons_mark(cons_active(x_110))) -> mark(active(encArg(x_110))) [0] encArg(cons_mark(cons_mark(x_111))) -> mark(mark(encArg(x_111))) [0] encArg(cons_mark(cons_sieve(x_112))) -> mark(sieve(encArg(x_112))) [0] encArg(cons_mark(cons_from(x_113))) -> mark(from(encArg(x_113))) [0] encArg(cons_mark(cons_s(x_114))) -> mark(s(encArg(x_114))) [0] encArg(cons_mark(cons_cons(x_115, x_23))) -> mark(cons(encArg(x_115), encArg(x_23))) [0] encArg(cons_mark(cons_head(x_116))) -> mark(head(encArg(x_116))) [0] encArg(cons_mark(cons_tail(x_117))) -> mark(tail(encArg(x_117))) [0] encArg(cons_mark(cons_if(x_118, x_24, x_3''))) -> mark(if(encArg(x_118), encArg(x_24), encArg(x_3''))) [0] encArg(cons_mark(cons_filter(x_119, x_25))) -> mark(filter(encArg(x_119), encArg(x_25))) [0] encArg(cons_mark(cons_divides(x_120, x_26))) -> mark(divides(encArg(x_120), encArg(x_26))) [0] encArg(cons_mark(x_1)) -> mark(null_encArg) [0] encArg(cons_sieve(primes)) -> sieve(primes) [0] encArg(cons_sieve(0)) -> sieve(0) [0] encArg(cons_sieve(true)) -> sieve(true) [0] encArg(cons_sieve(false)) -> sieve(false) [0] encArg(cons_sieve(cons_active(x_121))) -> sieve(active(encArg(x_121))) [0] encArg(cons_sieve(cons_mark(x_122))) -> sieve(mark(encArg(x_122))) [0] encArg(cons_sieve(cons_sieve(x_123))) -> sieve(sieve(encArg(x_123))) [0] encArg(cons_sieve(cons_from(x_124))) -> sieve(from(encArg(x_124))) [0] encArg(cons_sieve(cons_s(x_125))) -> sieve(s(encArg(x_125))) [0] encArg(cons_sieve(cons_cons(x_126, x_27))) -> sieve(cons(encArg(x_126), encArg(x_27))) [0] encArg(cons_sieve(cons_head(x_127))) -> sieve(head(encArg(x_127))) [0] encArg(cons_sieve(cons_tail(x_128))) -> sieve(tail(encArg(x_128))) [0] encArg(cons_sieve(cons_if(x_129, x_28, x_31))) -> sieve(if(encArg(x_129), encArg(x_28), encArg(x_31))) [0] encArg(cons_sieve(cons_filter(x_130, x_29))) -> sieve(filter(encArg(x_130), encArg(x_29))) [0] encArg(cons_sieve(cons_divides(x_131, x_210))) -> sieve(divides(encArg(x_131), encArg(x_210))) [0] encArg(cons_sieve(x_1)) -> sieve(null_encArg) [0] encArg(cons_from(primes)) -> from(primes) [0] encArg(cons_from(0)) -> from(0) [0] encArg(cons_from(true)) -> from(true) [0] encArg(cons_from(false)) -> from(false) [0] encArg(cons_from(cons_active(x_132))) -> from(active(encArg(x_132))) [0] encArg(cons_from(cons_mark(x_133))) -> from(mark(encArg(x_133))) [0] encArg(cons_from(cons_sieve(x_134))) -> from(sieve(encArg(x_134))) [0] encArg(cons_from(cons_from(x_135))) -> from(from(encArg(x_135))) [0] encArg(cons_from(cons_s(x_136))) -> from(s(encArg(x_136))) [0] encArg(cons_from(cons_cons(x_137, x_211))) -> from(cons(encArg(x_137), encArg(x_211))) [0] encArg(cons_from(cons_head(x_138))) -> from(head(encArg(x_138))) [0] encArg(cons_from(cons_tail(x_139))) -> from(tail(encArg(x_139))) [0] encArg(cons_from(cons_if(x_140, x_212, x_32))) -> from(if(encArg(x_140), encArg(x_212), encArg(x_32))) [0] encArg(cons_from(cons_filter(x_141, x_213))) -> from(filter(encArg(x_141), encArg(x_213))) [0] encArg(cons_from(cons_divides(x_142, x_214))) -> from(divides(encArg(x_142), encArg(x_214))) [0] encArg(cons_from(x_1)) -> from(null_encArg) [0] encArg(cons_s(primes)) -> s(primes) [0] encArg(cons_s(0)) -> s(0) [0] encArg(cons_s(true)) -> s(true) [0] encArg(cons_s(false)) -> s(false) [0] encArg(cons_s(cons_active(x_143))) -> s(active(encArg(x_143))) [0] encArg(cons_s(cons_mark(x_144))) -> s(mark(encArg(x_144))) [0] encArg(cons_s(cons_sieve(x_145))) -> s(sieve(encArg(x_145))) [0] encArg(cons_s(cons_from(x_146))) -> s(from(encArg(x_146))) [0] encArg(cons_s(cons_s(x_147))) -> s(s(encArg(x_147))) [0] encArg(cons_s(cons_cons(x_148, x_215))) -> s(cons(encArg(x_148), encArg(x_215))) [0] encArg(cons_s(cons_head(x_149))) -> s(head(encArg(x_149))) [0] encArg(cons_s(cons_tail(x_150))) -> s(tail(encArg(x_150))) [0] encArg(cons_s(cons_if(x_151, x_216, x_33))) -> s(if(encArg(x_151), encArg(x_216), encArg(x_33))) [0] encArg(cons_s(cons_filter(x_152, x_217))) -> s(filter(encArg(x_152), encArg(x_217))) [0] encArg(cons_s(cons_divides(x_153, x_218))) -> s(divides(encArg(x_153), encArg(x_218))) [0] encArg(cons_s(x_1)) -> s(null_encArg) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_head(primes)) -> head(primes) [0] encArg(cons_head(0)) -> head(0) [0] encArg(cons_head(true)) -> head(true) [0] encArg(cons_head(false)) -> head(false) [0] encArg(cons_head(cons_active(x_1241))) -> head(active(encArg(x_1241))) [0] encArg(cons_head(cons_mark(x_1242))) -> head(mark(encArg(x_1242))) [0] encArg(cons_head(cons_sieve(x_1243))) -> head(sieve(encArg(x_1243))) [0] encArg(cons_head(cons_from(x_1244))) -> head(from(encArg(x_1244))) [0] encArg(cons_head(cons_s(x_1245))) -> head(s(encArg(x_1245))) [0] encArg(cons_head(cons_cons(x_1246, x_287))) -> head(cons(encArg(x_1246), encArg(x_287))) [0] encArg(cons_head(cons_head(x_1247))) -> head(head(encArg(x_1247))) [0] encArg(cons_head(cons_tail(x_1248))) -> head(tail(encArg(x_1248))) [0] encArg(cons_head(cons_if(x_1249, x_288, x_321))) -> head(if(encArg(x_1249), encArg(x_288), encArg(x_321))) [0] encArg(cons_head(cons_filter(x_1250, x_289))) -> head(filter(encArg(x_1250), encArg(x_289))) [0] encArg(cons_head(cons_divides(x_1251, x_290))) -> head(divides(encArg(x_1251), encArg(x_290))) [0] encArg(cons_head(x_1)) -> head(null_encArg) [0] encArg(cons_tail(primes)) -> tail(primes) [0] encArg(cons_tail(0)) -> tail(0) [0] encArg(cons_tail(true)) -> tail(true) [0] encArg(cons_tail(false)) -> tail(false) [0] encArg(cons_tail(cons_active(x_1252))) -> tail(active(encArg(x_1252))) [0] encArg(cons_tail(cons_mark(x_1253))) -> tail(mark(encArg(x_1253))) [0] encArg(cons_tail(cons_sieve(x_1254))) -> tail(sieve(encArg(x_1254))) [0] encArg(cons_tail(cons_from(x_1255))) -> tail(from(encArg(x_1255))) [0] encArg(cons_tail(cons_s(x_1256))) -> tail(s(encArg(x_1256))) [0] encArg(cons_tail(cons_cons(x_1257, x_291))) -> tail(cons(encArg(x_1257), encArg(x_291))) [0] encArg(cons_tail(cons_head(x_1258))) -> tail(head(encArg(x_1258))) [0] encArg(cons_tail(cons_tail(x_1259))) -> tail(tail(encArg(x_1259))) [0] encArg(cons_tail(cons_if(x_1260, x_292, x_322))) -> tail(if(encArg(x_1260), encArg(x_292), encArg(x_322))) [0] encArg(cons_tail(cons_filter(x_1261, x_293))) -> tail(filter(encArg(x_1261), encArg(x_293))) [0] encArg(cons_tail(cons_divides(x_1262, x_294))) -> tail(divides(encArg(x_1262), encArg(x_294))) [0] encArg(cons_tail(x_1)) -> tail(null_encArg) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) [0] encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) [0] encode_active(primes) -> active(primes) [0] encode_active(0) -> active(0) [0] encode_active(true) -> active(true) [0] encode_active(false) -> active(false) [0] encode_active(cons_active(x_13640)) -> active(active(encArg(x_13640))) [0] encode_active(cons_mark(x_13641)) -> active(mark(encArg(x_13641))) [0] encode_active(cons_sieve(x_13642)) -> active(sieve(encArg(x_13642))) [0] encode_active(cons_from(x_13643)) -> active(from(encArg(x_13643))) [0] encode_active(cons_s(x_13644)) -> active(s(encArg(x_13644))) [0] encode_active(cons_cons(x_13645, x_21323)) -> active(cons(encArg(x_13645), encArg(x_21323))) [0] encode_active(cons_head(x_13646)) -> active(head(encArg(x_13646))) [0] encode_active(cons_tail(x_13647)) -> active(tail(encArg(x_13647))) [0] encode_active(cons_if(x_13648, x_21324, x_3330)) -> active(if(encArg(x_13648), encArg(x_21324), encArg(x_3330))) [0] encode_active(cons_filter(x_13649, x_21325)) -> active(filter(encArg(x_13649), encArg(x_21325))) [0] encode_active(cons_divides(x_13650, x_21326)) -> active(divides(encArg(x_13650), encArg(x_21326))) [0] encode_active(x_1) -> active(null_encArg) [0] encode_primes -> primes [0] encode_mark(primes) -> mark(primes) [0] encode_mark(0) -> mark(0) [0] encode_mark(true) -> mark(true) [0] encode_mark(false) -> mark(false) [0] encode_mark(cons_active(x_13651)) -> mark(active(encArg(x_13651))) [0] encode_mark(cons_mark(x_13652)) -> mark(mark(encArg(x_13652))) [0] encode_mark(cons_sieve(x_13653)) -> mark(sieve(encArg(x_13653))) [0] encode_mark(cons_from(x_13654)) -> mark(from(encArg(x_13654))) [0] encode_mark(cons_s(x_13655)) -> mark(s(encArg(x_13655))) [0] encode_mark(cons_cons(x_13656, x_21327)) -> mark(cons(encArg(x_13656), encArg(x_21327))) [0] encode_mark(cons_head(x_13657)) -> mark(head(encArg(x_13657))) [0] encode_mark(cons_tail(x_13658)) -> mark(tail(encArg(x_13658))) [0] encode_mark(cons_if(x_13659, x_21328, x_3331)) -> mark(if(encArg(x_13659), encArg(x_21328), encArg(x_3331))) [0] encode_mark(cons_filter(x_13660, x_21329)) -> mark(filter(encArg(x_13660), encArg(x_21329))) [0] encode_mark(cons_divides(x_13661, x_21330)) -> mark(divides(encArg(x_13661), encArg(x_21330))) [0] encode_mark(x_1) -> mark(null_encArg) [0] encode_sieve(primes) -> sieve(primes) [0] encode_sieve(0) -> sieve(0) [0] encode_sieve(true) -> sieve(true) [0] encode_sieve(false) -> sieve(false) [0] encode_sieve(cons_active(x_13662)) -> sieve(active(encArg(x_13662))) [0] encode_sieve(cons_mark(x_13663)) -> sieve(mark(encArg(x_13663))) [0] encode_sieve(cons_sieve(x_13664)) -> sieve(sieve(encArg(x_13664))) [0] encode_sieve(cons_from(x_13665)) -> sieve(from(encArg(x_13665))) [0] encode_sieve(cons_s(x_13666)) -> sieve(s(encArg(x_13666))) [0] encode_sieve(cons_cons(x_13667, x_21331)) -> sieve(cons(encArg(x_13667), encArg(x_21331))) [0] encode_sieve(cons_head(x_13668)) -> sieve(head(encArg(x_13668))) [0] encode_sieve(cons_tail(x_13669)) -> sieve(tail(encArg(x_13669))) [0] encode_sieve(cons_if(x_13670, x_21332, x_3332)) -> sieve(if(encArg(x_13670), encArg(x_21332), encArg(x_3332))) [0] encode_sieve(cons_filter(x_13671, x_21333)) -> sieve(filter(encArg(x_13671), encArg(x_21333))) [0] encode_sieve(cons_divides(x_13672, x_21334)) -> sieve(divides(encArg(x_13672), encArg(x_21334))) [0] encode_sieve(x_1) -> sieve(null_encArg) [0] encode_from(primes) -> from(primes) [0] encode_from(0) -> from(0) [0] encode_from(true) -> from(true) [0] encode_from(false) -> from(false) [0] encode_from(cons_active(x_13673)) -> from(active(encArg(x_13673))) [0] encode_from(cons_mark(x_13674)) -> from(mark(encArg(x_13674))) [0] encode_from(cons_sieve(x_13675)) -> from(sieve(encArg(x_13675))) [0] encode_from(cons_from(x_13676)) -> from(from(encArg(x_13676))) [0] encode_from(cons_s(x_13677)) -> from(s(encArg(x_13677))) [0] encode_from(cons_cons(x_13678, x_21335)) -> from(cons(encArg(x_13678), encArg(x_21335))) [0] encode_from(cons_head(x_13679)) -> from(head(encArg(x_13679))) [0] encode_from(cons_tail(x_13680)) -> from(tail(encArg(x_13680))) [0] encode_from(cons_if(x_13681, x_21336, x_3333)) -> from(if(encArg(x_13681), encArg(x_21336), encArg(x_3333))) [0] encode_from(cons_filter(x_13682, x_21337)) -> from(filter(encArg(x_13682), encArg(x_21337))) [0] encode_from(cons_divides(x_13683, x_21338)) -> from(divides(encArg(x_13683), encArg(x_21338))) [0] encode_from(x_1) -> from(null_encArg) [0] encode_s(primes) -> s(primes) [0] encode_s(0) -> s(0) [0] encode_s(true) -> s(true) [0] encode_s(false) -> s(false) [0] encode_s(cons_active(x_13684)) -> s(active(encArg(x_13684))) [0] encode_s(cons_mark(x_13685)) -> s(mark(encArg(x_13685))) [0] encode_s(cons_sieve(x_13686)) -> s(sieve(encArg(x_13686))) [0] encode_s(cons_from(x_13687)) -> s(from(encArg(x_13687))) [0] encode_s(cons_s(x_13688)) -> s(s(encArg(x_13688))) [0] encode_s(cons_cons(x_13689, x_21339)) -> s(cons(encArg(x_13689), encArg(x_21339))) [0] encode_s(cons_head(x_13690)) -> s(head(encArg(x_13690))) [0] encode_s(cons_tail(x_13691)) -> s(tail(encArg(x_13691))) [0] encode_s(cons_if(x_13692, x_21340, x_3334)) -> s(if(encArg(x_13692), encArg(x_21340), encArg(x_3334))) [0] encode_s(cons_filter(x_13693, x_21341)) -> s(filter(encArg(x_13693), encArg(x_21341))) [0] encode_s(cons_divides(x_13694, x_21342)) -> s(divides(encArg(x_13694), encArg(x_21342))) [0] encode_s(x_1) -> s(null_encArg) [0] encode_0 -> 0 [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_head(primes) -> head(primes) [0] encode_head(0) -> head(0) [0] encode_head(true) -> head(true) [0] encode_head(false) -> head(false) [0] encode_head(cons_active(x_13882)) -> head(active(encArg(x_13882))) [0] encode_head(cons_mark(x_13883)) -> head(mark(encArg(x_13883))) [0] encode_head(cons_sieve(x_13884)) -> head(sieve(encArg(x_13884))) [0] encode_head(cons_from(x_13885)) -> head(from(encArg(x_13885))) [0] encode_head(cons_s(x_13886)) -> head(s(encArg(x_13886))) [0] encode_head(cons_cons(x_13887, x_21411)) -> head(cons(encArg(x_13887), encArg(x_21411))) [0] encode_head(cons_head(x_13888)) -> head(head(encArg(x_13888))) [0] encode_head(cons_tail(x_13889)) -> head(tail(encArg(x_13889))) [0] encode_head(cons_if(x_13890, x_21412, x_3352)) -> head(if(encArg(x_13890), encArg(x_21412), encArg(x_3352))) [0] encode_head(cons_filter(x_13891, x_21413)) -> head(filter(encArg(x_13891), encArg(x_21413))) [0] encode_head(cons_divides(x_13892, x_21414)) -> head(divides(encArg(x_13892), encArg(x_21414))) [0] encode_head(x_1) -> head(null_encArg) [0] encode_tail(primes) -> tail(primes) [0] encode_tail(0) -> tail(0) [0] encode_tail(true) -> tail(true) [0] encode_tail(false) -> tail(false) [0] encode_tail(cons_active(x_13893)) -> tail(active(encArg(x_13893))) [0] encode_tail(cons_mark(x_13894)) -> tail(mark(encArg(x_13894))) [0] encode_tail(cons_sieve(x_13895)) -> tail(sieve(encArg(x_13895))) [0] encode_tail(cons_from(x_13896)) -> tail(from(encArg(x_13896))) [0] encode_tail(cons_s(x_13897)) -> tail(s(encArg(x_13897))) [0] encode_tail(cons_cons(x_13898, x_21415)) -> tail(cons(encArg(x_13898), encArg(x_21415))) [0] encode_tail(cons_head(x_13899)) -> tail(head(encArg(x_13899))) [0] encode_tail(cons_tail(x_13900)) -> tail(tail(encArg(x_13900))) [0] encode_tail(cons_if(x_13901, x_21416, x_3353)) -> tail(if(encArg(x_13901), encArg(x_21416), encArg(x_3353))) [0] encode_tail(cons_filter(x_13902, x_21417)) -> tail(filter(encArg(x_13902), encArg(x_21417))) [0] encode_tail(cons_divides(x_13903, x_21418)) -> tail(divides(encArg(x_13903), encArg(x_21418))) [0] encode_tail(x_1) -> tail(null_encArg) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_false -> false [0] encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) [0] encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] filter(x0, x1) -> c_filter(x0, x1) [0] divides(x0, x1) -> c_divides(x0, x1) [0] if(x0, x1, x2) -> c_if(x0, x1, x2) [0] head(x0) -> c_head(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] sieve(x0) -> c_sieve(x0) [0] from(x0) -> c_from(x0) [0] mark(x0) -> c_mark(x0) [0] encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_primes -> null_encode_primes [0] encode_mark(v0) -> null_encode_mark [0] encode_sieve(v0) -> null_encode_sieve [0] encode_from(v0) -> null_encode_from [0] encode_s(v0) -> null_encode_s [0] encode_0 -> null_encode_0 [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_if(v0, v1, v2) -> null_encode_if [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_filter(v0, v1) -> null_encode_filter [0] encode_divides(v0, v1) -> null_encode_divides [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] filter(v0, v1) -> null_filter [0] divides(v0, v1) -> null_divides [0] if(v0, v1, v2) -> null_if [0] head(v0) -> null_head [0] cons(v0, v1) -> null_cons [0] sieve(v0) -> null_sieve [0] from(v0) -> null_from [0] mark(v0) -> null_mark [0] The TRS has the following type information: active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark 0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark Rewrite Strategy: INNERMOST ---------------------------------------- (25) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: primes => 2 0 => 0 true => 3 false => 1 null_encArg => 0 null_encode_active => 0 null_encode_primes => 0 null_encode_mark => 0 null_encode_sieve => 0 null_encode_from => 0 null_encode_s => 0 null_encode_0 => 0 null_encode_cons => 0 null_encode_head => 0 null_encode_tail => 0 null_encode_if => 0 null_encode_true => 0 null_encode_false => 0 null_encode_filter => 0 null_encode_divides => 0 null_tail => 0 null_s => 0 null_active => 0 null_filter => 0 null_divides => 0 null_if => 0 null_head => 0 null_cons => 0 null_sieve => 0 null_from => 0 null_mark => 0 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: active(z) -{ 1 }-> mark(X) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(X) :|: z = 1 + 3 + X + Y, Y >= 0, X >= 0 active(z) -{ 1 }-> mark(Y) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(Y) :|: Y >= 0, z = 1 + 1 + X + Y, X >= 0 active(z) -{ 1 }-> mark(sieve(from(s(0)))) :|: z = 2 active(z) -{ 1 }-> mark(sieve(from(s(1 + 0)))) :|: z = 2 active(z) -{ 1 }-> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) :|: Z >= 0, Y >= 0, X >= 0, z = 1 + (1 + (1 + X)) + (1 + Y + Z) active(z) -{ 1 }-> mark(cons(X, from(0))) :|: z = 1 + X, X >= 0 active(z) -{ 1 }-> mark(cons(X, from(1 + X))) :|: z = 1 + X, X >= 0 active(z) -{ 2 }-> mark(cons(X, filter(X, sieve(X189)))) :|: z = 1 + (1 + X + (1 + X189)), X >= 0, X189 >= 0 active(z) -{ 2 }-> mark(cons(X, filter(X, sieve(X190)))) :|: z = 1 + (1 + X + (1 + X190)), X >= 0, X190 >= 0 active(z) -{ 1 }-> mark(cons(X, filter(X, 0))) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(cons(X, filter(X, 1 + Y))) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 2 }-> mark(cons(1 + X342, from(s(X342)))) :|: z = 1 + (1 + X342), X342 >= 0 active(z) -{ 2 }-> mark(cons(1 + X343, from(s(X343)))) :|: X343 >= 0, z = 1 + (1 + X343) active(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 active(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 cons(z, z') -{ 1 }-> cons(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 cons(z, z') -{ 1 }-> cons(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 cons(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 divides(z, z') -{ 1 }-> divides(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 divides(z, z') -{ 1 }-> divides(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 divides(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 divides(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 encArg(z) -{ 0 }-> tail(tail(encArg(x_1259))) :|: x_1259 >= 0, z = 1 + (1 + x_1259) encArg(z) -{ 0 }-> tail(sieve(encArg(x_1254))) :|: x_1254 >= 0, z = 1 + (1 + x_1254) encArg(z) -{ 0 }-> tail(s(encArg(x_1256))) :|: z = 1 + (1 + x_1256), x_1256 >= 0 encArg(z) -{ 0 }-> tail(mark(encArg(x_1253))) :|: x_1253 >= 0, z = 1 + (1 + x_1253) encArg(z) -{ 0 }-> tail(if(encArg(x_1260), encArg(x_292), encArg(x_322))) :|: x_292 >= 0, x_1260 >= 0, z = 1 + (1 + x_1260 + x_292 + x_322), x_322 >= 0 encArg(z) -{ 0 }-> tail(head(encArg(x_1258))) :|: z = 1 + (1 + x_1258), x_1258 >= 0 encArg(z) -{ 0 }-> tail(from(encArg(x_1255))) :|: x_1255 >= 0, z = 1 + (1 + x_1255) encArg(z) -{ 0 }-> tail(filter(encArg(x_1261), encArg(x_293))) :|: x_293 >= 0, z = 1 + (1 + x_1261 + x_293), x_1261 >= 0 encArg(z) -{ 0 }-> tail(divides(encArg(x_1262), encArg(x_294))) :|: x_294 >= 0, z = 1 + (1 + x_1262 + x_294), x_1262 >= 0 encArg(z) -{ 0 }-> tail(cons(encArg(x_1257), encArg(x_291))) :|: x_1257 >= 0, z = 1 + (1 + x_1257 + x_291), x_291 >= 0 encArg(z) -{ 0 }-> tail(active(encArg(x_1252))) :|: z = 1 + (1 + x_1252), x_1252 >= 0 encArg(z) -{ 0 }-> tail(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> tail(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> tail(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> tail(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> tail(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> sieve(tail(encArg(x_128))) :|: x_128 >= 0, z = 1 + (1 + x_128) encArg(z) -{ 0 }-> sieve(sieve(encArg(x_123))) :|: x_123 >= 0, z = 1 + (1 + x_123) encArg(z) -{ 0 }-> sieve(s(encArg(x_125))) :|: z = 1 + (1 + x_125), x_125 >= 0 encArg(z) -{ 0 }-> sieve(mark(encArg(x_122))) :|: x_122 >= 0, z = 1 + (1 + x_122) encArg(z) -{ 0 }-> sieve(if(encArg(x_129), encArg(x_28), encArg(x_31))) :|: x_31 >= 0, z = 1 + (1 + x_129 + x_28 + x_31), x_28 >= 0, x_129 >= 0 encArg(z) -{ 0 }-> sieve(head(encArg(x_127))) :|: z = 1 + (1 + x_127), x_127 >= 0 encArg(z) -{ 0 }-> sieve(from(encArg(x_124))) :|: x_124 >= 0, z = 1 + (1 + x_124) encArg(z) -{ 0 }-> sieve(filter(encArg(x_130), encArg(x_29))) :|: x_130 >= 0, z = 1 + (1 + x_130 + x_29), x_29 >= 0 encArg(z) -{ 0 }-> sieve(divides(encArg(x_131), encArg(x_210))) :|: z = 1 + (1 + x_131 + x_210), x_131 >= 0, x_210 >= 0 encArg(z) -{ 0 }-> sieve(cons(encArg(x_126), encArg(x_27))) :|: x_126 >= 0, x_27 >= 0, z = 1 + (1 + x_126 + x_27) encArg(z) -{ 0 }-> sieve(active(encArg(x_121))) :|: z = 1 + (1 + x_121), x_121 >= 0 encArg(z) -{ 0 }-> sieve(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> sieve(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> sieve(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> sieve(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> sieve(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> s(tail(encArg(x_150))) :|: z = 1 + (1 + x_150), x_150 >= 0 encArg(z) -{ 0 }-> s(sieve(encArg(x_145))) :|: z = 1 + (1 + x_145), x_145 >= 0 encArg(z) -{ 0 }-> s(s(encArg(x_147))) :|: x_147 >= 0, z = 1 + (1 + x_147) encArg(z) -{ 0 }-> s(mark(encArg(x_144))) :|: z = 1 + (1 + x_144), x_144 >= 0 encArg(z) -{ 0 }-> s(if(encArg(x_151), encArg(x_216), encArg(x_33))) :|: x_216 >= 0, z = 1 + (1 + x_151 + x_216 + x_33), x_33 >= 0, x_151 >= 0 encArg(z) -{ 0 }-> s(head(encArg(x_149))) :|: z = 1 + (1 + x_149), x_149 >= 0 encArg(z) -{ 0 }-> s(from(encArg(x_146))) :|: z = 1 + (1 + x_146), x_146 >= 0 encArg(z) -{ 0 }-> s(filter(encArg(x_152), encArg(x_217))) :|: z = 1 + (1 + x_152 + x_217), x_217 >= 0, x_152 >= 0 encArg(z) -{ 0 }-> s(divides(encArg(x_153), encArg(x_218))) :|: z = 1 + (1 + x_153 + x_218), x_218 >= 0, x_153 >= 0 encArg(z) -{ 0 }-> s(cons(encArg(x_148), encArg(x_215))) :|: z = 1 + (1 + x_148 + x_215), x_215 >= 0, x_148 >= 0 encArg(z) -{ 0 }-> s(active(encArg(x_143))) :|: z = 1 + (1 + x_143), x_143 >= 0 encArg(z) -{ 0 }-> s(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> s(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> s(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> mark(tail(encArg(x_117))) :|: z = 1 + (1 + x_117), x_117 >= 0 encArg(z) -{ 0 }-> mark(sieve(encArg(x_112))) :|: x_112 >= 0, z = 1 + (1 + x_112) encArg(z) -{ 0 }-> mark(s(encArg(x_114))) :|: z = 1 + (1 + x_114), x_114 >= 0 encArg(z) -{ 0 }-> mark(mark(encArg(x_111))) :|: z = 1 + (1 + x_111), x_111 >= 0 encArg(z) -{ 0 }-> mark(if(encArg(x_118), encArg(x_24), encArg(x_3''))) :|: z = 1 + (1 + x_118 + x_24 + x_3''), x_24 >= 0, x_118 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> mark(head(encArg(x_116))) :|: z = 1 + (1 + x_116), x_116 >= 0 encArg(z) -{ 0 }-> mark(from(encArg(x_113))) :|: x_113 >= 0, z = 1 + (1 + x_113) encArg(z) -{ 0 }-> mark(filter(encArg(x_119), encArg(x_25))) :|: x_25 >= 0, z = 1 + (1 + x_119 + x_25), x_119 >= 0 encArg(z) -{ 0 }-> mark(divides(encArg(x_120), encArg(x_26))) :|: x_120 >= 0, z = 1 + (1 + x_120 + x_26), x_26 >= 0 encArg(z) -{ 0 }-> mark(cons(encArg(x_115), encArg(x_23))) :|: z = 1 + (1 + x_115 + x_23), x_115 >= 0, x_23 >= 0 encArg(z) -{ 0 }-> mark(active(encArg(x_110))) :|: z = 1 + (1 + x_110), x_110 >= 0 encArg(z) -{ 0 }-> mark(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> mark(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> mark(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> mark(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> mark(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> if(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> head(tail(encArg(x_1248))) :|: z = 1 + (1 + x_1248), x_1248 >= 0 encArg(z) -{ 0 }-> head(sieve(encArg(x_1243))) :|: z = 1 + (1 + x_1243), x_1243 >= 0 encArg(z) -{ 0 }-> head(s(encArg(x_1245))) :|: z = 1 + (1 + x_1245), x_1245 >= 0 encArg(z) -{ 0 }-> head(mark(encArg(x_1242))) :|: z = 1 + (1 + x_1242), x_1242 >= 0 encArg(z) -{ 0 }-> head(if(encArg(x_1249), encArg(x_288), encArg(x_321))) :|: x_321 >= 0, z = 1 + (1 + x_1249 + x_288 + x_321), x_1249 >= 0, x_288 >= 0 encArg(z) -{ 0 }-> head(head(encArg(x_1247))) :|: x_1247 >= 0, z = 1 + (1 + x_1247) encArg(z) -{ 0 }-> head(from(encArg(x_1244))) :|: x_1244 >= 0, z = 1 + (1 + x_1244) encArg(z) -{ 0 }-> head(filter(encArg(x_1250), encArg(x_289))) :|: x_289 >= 0, x_1250 >= 0, z = 1 + (1 + x_1250 + x_289) encArg(z) -{ 0 }-> head(divides(encArg(x_1251), encArg(x_290))) :|: z = 1 + (1 + x_1251 + x_290), x_1251 >= 0, x_290 >= 0 encArg(z) -{ 0 }-> head(cons(encArg(x_1246), encArg(x_287))) :|: z = 1 + (1 + x_1246 + x_287), x_1246 >= 0, x_287 >= 0 encArg(z) -{ 0 }-> head(active(encArg(x_1241))) :|: z = 1 + (1 + x_1241), x_1241 >= 0 encArg(z) -{ 0 }-> head(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> head(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> head(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> head(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> head(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> from(tail(encArg(x_139))) :|: z = 1 + (1 + x_139), x_139 >= 0 encArg(z) -{ 0 }-> from(sieve(encArg(x_134))) :|: z = 1 + (1 + x_134), x_134 >= 0 encArg(z) -{ 0 }-> from(s(encArg(x_136))) :|: z = 1 + (1 + x_136), x_136 >= 0 encArg(z) -{ 0 }-> from(mark(encArg(x_133))) :|: z = 1 + (1 + x_133), x_133 >= 0 encArg(z) -{ 0 }-> from(if(encArg(x_140), encArg(x_212), encArg(x_32))) :|: x_32 >= 0, z = 1 + (1 + x_140 + x_212 + x_32), x_212 >= 0, x_140 >= 0 encArg(z) -{ 0 }-> from(head(encArg(x_138))) :|: x_138 >= 0, z = 1 + (1 + x_138) encArg(z) -{ 0 }-> from(from(encArg(x_135))) :|: z = 1 + (1 + x_135), x_135 >= 0 encArg(z) -{ 0 }-> from(filter(encArg(x_141), encArg(x_213))) :|: x_213 >= 0, z = 1 + (1 + x_141 + x_213), x_141 >= 0 encArg(z) -{ 0 }-> from(divides(encArg(x_142), encArg(x_214))) :|: x_214 >= 0, z = 1 + (1 + x_142 + x_214), x_142 >= 0 encArg(z) -{ 0 }-> from(cons(encArg(x_137), encArg(x_211))) :|: z = 1 + (1 + x_137 + x_211), x_137 >= 0, x_211 >= 0 encArg(z) -{ 0 }-> from(active(encArg(x_132))) :|: x_132 >= 0, z = 1 + (1 + x_132) encArg(z) -{ 0 }-> from(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> from(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> from(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> from(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> from(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> filter(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> divides(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> active(tail(encArg(x_16))) :|: x_16 >= 0, z = 1 + (1 + x_16) encArg(z) -{ 0 }-> active(sieve(encArg(x_11))) :|: x_11 >= 0, z = 1 + (1 + x_11) encArg(z) -{ 0 }-> active(s(encArg(x_13))) :|: z = 1 + (1 + x_13), x_13 >= 0 encArg(z) -{ 0 }-> active(mark(encArg(x_1''))) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> active(if(encArg(x_17), encArg(x_2''), encArg(x_3'))) :|: x_3' >= 0, z = 1 + (1 + x_17 + x_2'' + x_3'), x_17 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> active(head(encArg(x_15))) :|: x_15 >= 0, z = 1 + (1 + x_15) encArg(z) -{ 0 }-> active(from(encArg(x_12))) :|: z = 1 + (1 + x_12), x_12 >= 0 encArg(z) -{ 0 }-> active(filter(encArg(x_18), encArg(x_21))) :|: z = 1 + (1 + x_18 + x_21), x_18 >= 0, x_21 >= 0 encArg(z) -{ 0 }-> active(divides(encArg(x_19), encArg(x_22))) :|: z = 1 + (1 + x_19 + x_22), x_22 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> active(cons(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> active(active(encArg(x_1'))) :|: z = 1 + (1 + x_1'), x_1' >= 0 encArg(z) -{ 0 }-> active(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> active(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> active(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> active(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> active(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> 3 :|: z = 3 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_0 -{ 0 }-> 0 :|: encode_active(z) -{ 0 }-> active(tail(encArg(x_13647))) :|: z = 1 + x_13647, x_13647 >= 0 encode_active(z) -{ 0 }-> active(sieve(encArg(x_13642))) :|: x_13642 >= 0, z = 1 + x_13642 encode_active(z) -{ 0 }-> active(s(encArg(x_13644))) :|: z = 1 + x_13644, x_13644 >= 0 encode_active(z) -{ 0 }-> active(mark(encArg(x_13641))) :|: x_13641 >= 0, z = 1 + x_13641 encode_active(z) -{ 0 }-> active(if(encArg(x_13648), encArg(x_21324), encArg(x_3330))) :|: x_13648 >= 0, x_21324 >= 0, z = 1 + x_13648 + x_21324 + x_3330, x_3330 >= 0 encode_active(z) -{ 0 }-> active(head(encArg(x_13646))) :|: z = 1 + x_13646, x_13646 >= 0 encode_active(z) -{ 0 }-> active(from(encArg(x_13643))) :|: x_13643 >= 0, z = 1 + x_13643 encode_active(z) -{ 0 }-> active(filter(encArg(x_13649), encArg(x_21325))) :|: x_13649 >= 0, x_21325 >= 0, z = 1 + x_13649 + x_21325 encode_active(z) -{ 0 }-> active(divides(encArg(x_13650), encArg(x_21326))) :|: z = 1 + x_13650 + x_21326, x_13650 >= 0, x_21326 >= 0 encode_active(z) -{ 0 }-> active(cons(encArg(x_13645), encArg(x_21323))) :|: x_13645 >= 0, x_21323 >= 0, z = 1 + x_13645 + x_21323 encode_active(z) -{ 0 }-> active(active(encArg(x_13640))) :|: x_13640 >= 0, z = 1 + x_13640 encode_active(z) -{ 0 }-> active(3) :|: z = 3 encode_active(z) -{ 0 }-> active(2) :|: z = 2 encode_active(z) -{ 0 }-> active(1) :|: z = 1 encode_active(z) -{ 0 }-> active(0) :|: z = 0 encode_active(z) -{ 0 }-> active(0) :|: x_1 >= 0, z = x_1 encode_active(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_cons(z, z') -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_divides(z, z') -{ 0 }-> divides(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_divides(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_filter(z, z') -{ 0 }-> filter(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_filter(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_from(z) -{ 0 }-> from(tail(encArg(x_13680))) :|: z = 1 + x_13680, x_13680 >= 0 encode_from(z) -{ 0 }-> from(sieve(encArg(x_13675))) :|: z = 1 + x_13675, x_13675 >= 0 encode_from(z) -{ 0 }-> from(s(encArg(x_13677))) :|: x_13677 >= 0, z = 1 + x_13677 encode_from(z) -{ 0 }-> from(mark(encArg(x_13674))) :|: z = 1 + x_13674, x_13674 >= 0 encode_from(z) -{ 0 }-> from(if(encArg(x_13681), encArg(x_21336), encArg(x_3333))) :|: z = 1 + x_13681 + x_21336 + x_3333, x_3333 >= 0, x_13681 >= 0, x_21336 >= 0 encode_from(z) -{ 0 }-> from(head(encArg(x_13679))) :|: z = 1 + x_13679, x_13679 >= 0 encode_from(z) -{ 0 }-> from(from(encArg(x_13676))) :|: x_13676 >= 0, z = 1 + x_13676 encode_from(z) -{ 0 }-> from(filter(encArg(x_13682), encArg(x_21337))) :|: x_13682 >= 0, z = 1 + x_13682 + x_21337, x_21337 >= 0 encode_from(z) -{ 0 }-> from(divides(encArg(x_13683), encArg(x_21338))) :|: x_13683 >= 0, x_21338 >= 0, z = 1 + x_13683 + x_21338 encode_from(z) -{ 0 }-> from(cons(encArg(x_13678), encArg(x_21335))) :|: z = 1 + x_13678 + x_21335, x_21335 >= 0, x_13678 >= 0 encode_from(z) -{ 0 }-> from(active(encArg(x_13673))) :|: x_13673 >= 0, z = 1 + x_13673 encode_from(z) -{ 0 }-> from(3) :|: z = 3 encode_from(z) -{ 0 }-> from(2) :|: z = 2 encode_from(z) -{ 0 }-> from(1) :|: z = 1 encode_from(z) -{ 0 }-> from(0) :|: z = 0 encode_from(z) -{ 0 }-> from(0) :|: x_1 >= 0, z = x_1 encode_from(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_head(z) -{ 0 }-> head(tail(encArg(x_13889))) :|: z = 1 + x_13889, x_13889 >= 0 encode_head(z) -{ 0 }-> head(sieve(encArg(x_13884))) :|: x_13884 >= 0, z = 1 + x_13884 encode_head(z) -{ 0 }-> head(s(encArg(x_13886))) :|: z = 1 + x_13886, x_13886 >= 0 encode_head(z) -{ 0 }-> head(mark(encArg(x_13883))) :|: x_13883 >= 0, z = 1 + x_13883 encode_head(z) -{ 0 }-> head(if(encArg(x_13890), encArg(x_21412), encArg(x_3352))) :|: x_3352 >= 0, x_21412 >= 0, z = 1 + x_13890 + x_21412 + x_3352, x_13890 >= 0 encode_head(z) -{ 0 }-> head(head(encArg(x_13888))) :|: z = 1 + x_13888, x_13888 >= 0 encode_head(z) -{ 0 }-> head(from(encArg(x_13885))) :|: x_13885 >= 0, z = 1 + x_13885 encode_head(z) -{ 0 }-> head(filter(encArg(x_13891), encArg(x_21413))) :|: x_13891 >= 0, x_21413 >= 0, z = 1 + x_13891 + x_21413 encode_head(z) -{ 0 }-> head(divides(encArg(x_13892), encArg(x_21414))) :|: x_21414 >= 0, z = 1 + x_13892 + x_21414, x_13892 >= 0 encode_head(z) -{ 0 }-> head(cons(encArg(x_13887), encArg(x_21411))) :|: x_21411 >= 0, x_13887 >= 0, z = 1 + x_13887 + x_21411 encode_head(z) -{ 0 }-> head(active(encArg(x_13882))) :|: z = 1 + x_13882, x_13882 >= 0 encode_head(z) -{ 0 }-> head(3) :|: z = 3 encode_head(z) -{ 0 }-> head(2) :|: z = 2 encode_head(z) -{ 0 }-> head(1) :|: z = 1 encode_head(z) -{ 0 }-> head(0) :|: z = 0 encode_head(z) -{ 0 }-> head(0) :|: x_1 >= 0, z = x_1 encode_head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_if(z, z', z'') -{ 0 }-> if(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3 encode_if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_mark(z) -{ 0 }-> mark(tail(encArg(x_13658))) :|: x_13658 >= 0, z = 1 + x_13658 encode_mark(z) -{ 0 }-> mark(sieve(encArg(x_13653))) :|: z = 1 + x_13653, x_13653 >= 0 encode_mark(z) -{ 0 }-> mark(s(encArg(x_13655))) :|: z = 1 + x_13655, x_13655 >= 0 encode_mark(z) -{ 0 }-> mark(mark(encArg(x_13652))) :|: x_13652 >= 0, z = 1 + x_13652 encode_mark(z) -{ 0 }-> mark(if(encArg(x_13659), encArg(x_21328), encArg(x_3331))) :|: x_3331 >= 0, z = 1 + x_13659 + x_21328 + x_3331, x_13659 >= 0, x_21328 >= 0 encode_mark(z) -{ 0 }-> mark(head(encArg(x_13657))) :|: z = 1 + x_13657, x_13657 >= 0 encode_mark(z) -{ 0 }-> mark(from(encArg(x_13654))) :|: z = 1 + x_13654, x_13654 >= 0 encode_mark(z) -{ 0 }-> mark(filter(encArg(x_13660), encArg(x_21329))) :|: x_21329 >= 0, z = 1 + x_13660 + x_21329, x_13660 >= 0 encode_mark(z) -{ 0 }-> mark(divides(encArg(x_13661), encArg(x_21330))) :|: x_13661 >= 0, x_21330 >= 0, z = 1 + x_13661 + x_21330 encode_mark(z) -{ 0 }-> mark(cons(encArg(x_13656), encArg(x_21327))) :|: x_13656 >= 0, z = 1 + x_13656 + x_21327, x_21327 >= 0 encode_mark(z) -{ 0 }-> mark(active(encArg(x_13651))) :|: z = 1 + x_13651, x_13651 >= 0 encode_mark(z) -{ 0 }-> mark(3) :|: z = 3 encode_mark(z) -{ 0 }-> mark(2) :|: z = 2 encode_mark(z) -{ 0 }-> mark(1) :|: z = 1 encode_mark(z) -{ 0 }-> mark(0) :|: z = 0 encode_mark(z) -{ 0 }-> mark(0) :|: x_1 >= 0, z = x_1 encode_mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_primes -{ 0 }-> 2 :|: encode_primes -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(tail(encArg(x_13691))) :|: x_13691 >= 0, z = 1 + x_13691 encode_s(z) -{ 0 }-> s(sieve(encArg(x_13686))) :|: z = 1 + x_13686, x_13686 >= 0 encode_s(z) -{ 0 }-> s(s(encArg(x_13688))) :|: x_13688 >= 0, z = 1 + x_13688 encode_s(z) -{ 0 }-> s(mark(encArg(x_13685))) :|: z = 1 + x_13685, x_13685 >= 0 encode_s(z) -{ 0 }-> s(if(encArg(x_13692), encArg(x_21340), encArg(x_3334))) :|: x_3334 >= 0, z = 1 + x_13692 + x_21340 + x_3334, x_21340 >= 0, x_13692 >= 0 encode_s(z) -{ 0 }-> s(head(encArg(x_13690))) :|: z = 1 + x_13690, x_13690 >= 0 encode_s(z) -{ 0 }-> s(from(encArg(x_13687))) :|: x_13687 >= 0, z = 1 + x_13687 encode_s(z) -{ 0 }-> s(filter(encArg(x_13693), encArg(x_21341))) :|: x_13693 >= 0, x_21341 >= 0, z = 1 + x_13693 + x_21341 encode_s(z) -{ 0 }-> s(divides(encArg(x_13694), encArg(x_21342))) :|: x_21342 >= 0, z = 1 + x_13694 + x_21342, x_13694 >= 0 encode_s(z) -{ 0 }-> s(cons(encArg(x_13689), encArg(x_21339))) :|: z = 1 + x_13689 + x_21339, x_21339 >= 0, x_13689 >= 0 encode_s(z) -{ 0 }-> s(active(encArg(x_13684))) :|: z = 1 + x_13684, x_13684 >= 0 encode_s(z) -{ 0 }-> s(3) :|: z = 3 encode_s(z) -{ 0 }-> s(2) :|: z = 2 encode_s(z) -{ 0 }-> s(1) :|: z = 1 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: x_1 >= 0, z = x_1 encode_s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_sieve(z) -{ 0 }-> sieve(tail(encArg(x_13669))) :|: z = 1 + x_13669, x_13669 >= 0 encode_sieve(z) -{ 0 }-> sieve(sieve(encArg(x_13664))) :|: x_13664 >= 0, z = 1 + x_13664 encode_sieve(z) -{ 0 }-> sieve(s(encArg(x_13666))) :|: z = 1 + x_13666, x_13666 >= 0 encode_sieve(z) -{ 0 }-> sieve(mark(encArg(x_13663))) :|: x_13663 >= 0, z = 1 + x_13663 encode_sieve(z) -{ 0 }-> sieve(if(encArg(x_13670), encArg(x_21332), encArg(x_3332))) :|: z = 1 + x_13670 + x_21332 + x_3332, x_21332 >= 0, x_3332 >= 0, x_13670 >= 0 encode_sieve(z) -{ 0 }-> sieve(head(encArg(x_13668))) :|: z = 1 + x_13668, x_13668 >= 0 encode_sieve(z) -{ 0 }-> sieve(from(encArg(x_13665))) :|: x_13665 >= 0, z = 1 + x_13665 encode_sieve(z) -{ 0 }-> sieve(filter(encArg(x_13671), encArg(x_21333))) :|: z = 1 + x_13671 + x_21333, x_13671 >= 0, x_21333 >= 0 encode_sieve(z) -{ 0 }-> sieve(divides(encArg(x_13672), encArg(x_21334))) :|: x_13672 >= 0, z = 1 + x_13672 + x_21334, x_21334 >= 0 encode_sieve(z) -{ 0 }-> sieve(cons(encArg(x_13667), encArg(x_21331))) :|: x_21331 >= 0, x_13667 >= 0, z = 1 + x_13667 + x_21331 encode_sieve(z) -{ 0 }-> sieve(active(encArg(x_13662))) :|: x_13662 >= 0, z = 1 + x_13662 encode_sieve(z) -{ 0 }-> sieve(3) :|: z = 3 encode_sieve(z) -{ 0 }-> sieve(2) :|: z = 2 encode_sieve(z) -{ 0 }-> sieve(1) :|: z = 1 encode_sieve(z) -{ 0 }-> sieve(0) :|: z = 0 encode_sieve(z) -{ 0 }-> sieve(0) :|: x_1 >= 0, z = x_1 encode_sieve(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_tail(z) -{ 0 }-> tail(tail(encArg(x_13900))) :|: x_13900 >= 0, z = 1 + x_13900 encode_tail(z) -{ 0 }-> tail(sieve(encArg(x_13895))) :|: x_13895 >= 0, z = 1 + x_13895 encode_tail(z) -{ 0 }-> tail(s(encArg(x_13897))) :|: z = 1 + x_13897, x_13897 >= 0 encode_tail(z) -{ 0 }-> tail(mark(encArg(x_13894))) :|: z = 1 + x_13894, x_13894 >= 0 encode_tail(z) -{ 0 }-> tail(if(encArg(x_13901), encArg(x_21416), encArg(x_3353))) :|: z = 1 + x_13901 + x_21416 + x_3353, x_3353 >= 0, x_13901 >= 0, x_21416 >= 0 encode_tail(z) -{ 0 }-> tail(head(encArg(x_13899))) :|: x_13899 >= 0, z = 1 + x_13899 encode_tail(z) -{ 0 }-> tail(from(encArg(x_13896))) :|: z = 1 + x_13896, x_13896 >= 0 encode_tail(z) -{ 0 }-> tail(filter(encArg(x_13902), encArg(x_21417))) :|: x_21417 >= 0, x_13902 >= 0, z = 1 + x_13902 + x_21417 encode_tail(z) -{ 0 }-> tail(divides(encArg(x_13903), encArg(x_21418))) :|: x_21418 >= 0, z = 1 + x_13903 + x_21418, x_13903 >= 0 encode_tail(z) -{ 0 }-> tail(cons(encArg(x_13898), encArg(x_21415))) :|: z = 1 + x_13898 + x_21415, x_13898 >= 0, x_21415 >= 0 encode_tail(z) -{ 0 }-> tail(active(encArg(x_13893))) :|: z = 1 + x_13893, x_13893 >= 0 encode_tail(z) -{ 0 }-> tail(3) :|: z = 3 encode_tail(z) -{ 0 }-> tail(2) :|: z = 2 encode_tail(z) -{ 0 }-> tail(1) :|: z = 1 encode_tail(z) -{ 0 }-> tail(0) :|: z = 0 encode_tail(z) -{ 0 }-> tail(0) :|: x_1 >= 0, z = x_1 encode_tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_true -{ 0 }-> 3 :|: encode_true -{ 0 }-> 0 :|: filter(z, z') -{ 1 }-> filter(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 filter(z, z') -{ 1 }-> filter(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 filter(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 filter(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 from(z) -{ 1 }-> from(X) :|: z = 1 + X, X >= 0 from(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 from(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 head(z) -{ 1 }-> head(X) :|: z = 1 + X, X >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 head(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 if(z, z', z'') -{ 1 }-> if(X1, X2, X3) :|: X1 >= 0, z = 1 + X1, X3 >= 0, X2 >= 0, z' = X2, z'' = X3 if(z, z', z'') -{ 1 }-> if(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z' = 1 + X2, X2 >= 0, z = X1, z'' = X3 if(z, z', z'') -{ 1 }-> if(X1, X2, X3) :|: X1 >= 0, X3 >= 0, X2 >= 0, z = X1, z' = X2, z'' = 1 + X3 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 if(z, z', z'') -{ 0 }-> 1 + x0 + x1 + x2 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1, z'' = x2, x2 >= 0 mark(z) -{ 2 }-> active(tail(active(tail(mark(X8))))) :|: X8 >= 0, z = 1 + (1 + X8) mark(z) -{ 2 }-> active(tail(active(sieve(mark(X14))))) :|: z = 1 + (1 + X14), X14 >= 0 mark(z) -{ 2 }-> active(tail(active(s(mark(X9))))) :|: X9 >= 0, z = 1 + (1 + X9) mark(z) -{ 2 }-> active(tail(active(if(mark(X15), X24, X3'')))) :|: X3'' >= 0, z = 1 + (1 + X15 + X24 + X3''), X15 >= 0, X24 >= 0 mark(z) -{ 2 }-> active(tail(active(head(mark(X7))))) :|: X7 >= 0, z = 1 + (1 + X7) mark(z) -{ 2 }-> active(tail(active(from(mark(X10))))) :|: z = 1 + (1 + X10), X10 >= 0 mark(z) -{ 2 }-> active(tail(active(filter(mark(X13), mark(X23))))) :|: z = 1 + (1 + X13 + X23), X13 >= 0, X23 >= 0 mark(z) -{ 2 }-> active(tail(active(divides(mark(X17), mark(X26))))) :|: z = 1 + (1 + X17 + X26), X26 >= 0, X17 >= 0 mark(z) -{ 2 }-> active(tail(active(cons(mark(X16), X25)))) :|: X16 >= 0, z = 1 + (1 + X16 + X25), X25 >= 0 mark(z) -{ 2 }-> active(tail(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(tail(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(tail(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(tail(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(tail(0)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(tail(1 + X)) :|: z = 1 + X, X >= 0 mark(z) -{ 2 }-> active(sieve(active(tail(mark(X192))))) :|: X192 >= 0, z = 1 + (1 + X192) mark(z) -{ 2 }-> active(sieve(active(sieve(mark(X196))))) :|: z = 1 + (1 + X196), X196 >= 0 mark(z) -{ 2 }-> active(sieve(active(s(mark(X193))))) :|: X193 >= 0, z = 1 + (1 + X193) mark(z) -{ 2 }-> active(sieve(active(if(mark(X197), X282, X326)))) :|: X282 >= 0, X326 >= 0, X197 >= 0, z = 1 + (1 + X197 + X282 + X326) mark(z) -{ 2 }-> active(sieve(active(head(mark(X191))))) :|: z = 1 + (1 + X191), X191 >= 0 mark(z) -{ 2 }-> active(sieve(active(from(mark(X194))))) :|: X194 >= 0, z = 1 + (1 + X194) mark(z) -{ 2 }-> active(sieve(active(filter(mark(X195), mark(X281))))) :|: X195 >= 0, z = 1 + (1 + X195 + X281), X281 >= 0 mark(z) -{ 2 }-> active(sieve(active(divides(mark(X199), mark(X284))))) :|: z = 1 + (1 + X199 + X284), X284 >= 0, X199 >= 0 mark(z) -{ 2 }-> active(sieve(active(cons(mark(X198), X283)))) :|: X283 >= 0, z = 1 + (1 + X198 + X283), X198 >= 0 mark(z) -{ 2 }-> active(sieve(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(sieve(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(sieve(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(sieve(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(sieve(0)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(sieve(1 + X)) :|: z = 1 + X, X >= 0 mark(z) -{ 2 }-> active(s(active(tail(mark(X19))))) :|: X19 >= 0, z = 1 + (1 + X19) mark(z) -{ 2 }-> active(s(active(sieve(mark(X29))))) :|: X29 >= 0, z = 1 + (1 + X29) mark(z) -{ 2 }-> active(s(active(s(mark(X20))))) :|: z = 1 + (1 + X20), X20 >= 0 mark(z) -{ 2 }-> active(s(active(if(mark(X111), X210, X31)))) :|: z = 1 + (1 + X111 + X210 + X31), X31 >= 0, X111 >= 0, X210 >= 0 mark(z) -{ 2 }-> active(s(active(head(mark(X18))))) :|: X18 >= 0, z = 1 + (1 + X18) mark(z) -{ 2 }-> active(s(active(from(mark(X27))))) :|: X27 >= 0, z = 1 + (1 + X27) mark(z) -{ 2 }-> active(s(active(filter(mark(X110), mark(X28))))) :|: X110 >= 0, X28 >= 0, z = 1 + (1 + X110 + X28) mark(z) -{ 2 }-> active(s(active(divides(mark(X113), mark(X212))))) :|: X113 >= 0, X212 >= 0, z = 1 + (1 + X113 + X212) mark(z) -{ 2 }-> active(s(active(cons(mark(X112), X211)))) :|: z = 1 + (1 + X112 + X211), X112 >= 0, X211 >= 0 mark(z) -{ 2 }-> active(s(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(s(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(s(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(s(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(s(0)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(s(1 + X)) :|: z = 1 + X, X >= 0 mark(z) -{ 2 }-> active(if(active(tail(mark(X201))), X2, X3)) :|: z = 1 + (1 + X201) + X2 + X3, X3 >= 0, X2 >= 0, X201 >= 0 mark(z) -{ 2 }-> active(if(active(sieve(mark(X204))), X2, X3)) :|: X204 >= 0, X3 >= 0, X2 >= 0, z = 1 + (1 + X204) + X2 + X3 mark(z) -{ 2 }-> active(if(active(s(mark(X202))), X2, X3)) :|: z = 1 + (1 + X202) + X2 + X3, X202 >= 0, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(if(mark(X1101), X286, X327)), X2, X3)) :|: X286 >= 0, X1101 >= 0, X3 >= 0, z = 1 + (1 + X1101 + X286 + X327) + X2 + X3, X327 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(head(mark(X200))), X2, X3)) :|: X3 >= 0, z = 1 + (1 + X200) + X2 + X3, X2 >= 0, X200 >= 0 mark(z) -{ 2 }-> active(if(active(from(mark(X203))), X2, X3)) :|: z = 1 + (1 + X203) + X2 + X3, X203 >= 0, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(filter(mark(X1100), mark(X285))), X2, X3)) :|: X1100 >= 0, X285 >= 0, X3 >= 0, z = 1 + (1 + X1100 + X285) + X2 + X3, X2 >= 0 mark(z) -{ 2 }-> active(if(active(divides(mark(X1103), mark(X288))), X2, X3)) :|: z = 1 + (1 + X1103 + X288) + X2 + X3, X288 >= 0, X3 >= 0, X2 >= 0, X1103 >= 0 mark(z) -{ 2 }-> active(if(active(cons(mark(X1102), X287)), X2, X3)) :|: z = 1 + (1 + X1102 + X287) + X2 + X3, X3 >= 0, X287 >= 0, X2 >= 0, X1102 >= 0 mark(z) -{ 2 }-> active(if(active(3), X2, X3)) :|: z = 1 + 3 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(2), X2, X3)) :|: z = 1 + 2 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(1), X2, X3)) :|: z = 1 + 1 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(0), X2, X3)) :|: z = 1 + 0 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 1 }-> active(if(0, X2, X3)) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 mark(z) -{ 1 }-> active(if(1 + X1, X2, X3)) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 mark(z) -{ 2 }-> active(head(active(tail(mark(X''))))) :|: z = 1 + (1 + X''), X'' >= 0 mark(z) -{ 2 }-> active(head(active(sieve(mark(X6))))) :|: X6 >= 0, z = 1 + (1 + X6) mark(z) -{ 2 }-> active(head(active(s(mark(X4))))) :|: z = 1 + (1 + X4), X4 >= 0 mark(z) -{ 2 }-> active(head(active(if(mark(X1''), X2'', X3')))) :|: X1'' >= 0, X3' >= 0, z = 1 + (1 + X1'' + X2'' + X3'), X2'' >= 0 mark(z) -{ 2 }-> active(head(active(head(mark(X'))))) :|: X' >= 0, z = 1 + (1 + X') mark(z) -{ 2 }-> active(head(active(from(mark(X5))))) :|: X5 >= 0, z = 1 + (1 + X5) mark(z) -{ 2 }-> active(head(active(filter(mark(X1'), mark(X2'))))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0 mark(z) -{ 2 }-> active(head(active(divides(mark(X12), mark(X22))))) :|: X12 >= 0, X22 >= 0, z = 1 + (1 + X12 + X22) mark(z) -{ 2 }-> active(head(active(cons(mark(X11), X21)))) :|: z = 1 + (1 + X11 + X21), X11 >= 0, X21 >= 0 mark(z) -{ 2 }-> active(head(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(head(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(head(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(head(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(head(0)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(head(1 + X)) :|: z = 1 + X, X >= 0 mark(z) -{ 2 }-> active(from(active(tail(mark(X32))))) :|: X32 >= 0, z = 1 + (1 + X32) mark(z) -{ 2 }-> active(from(active(sieve(mark(X35))))) :|: z = 1 + (1 + X35), X35 >= 0 mark(z) -{ 2 }-> active(from(active(s(mark(X33))))) :|: X33 >= 0, z = 1 + (1 + X33) mark(z) -{ 2 }-> active(from(active(if(mark(X115), X214, X36)))) :|: X36 >= 0, X214 >= 0, z = 1 + (1 + X115 + X214 + X36), X115 >= 0 mark(z) -{ 2 }-> active(from(active(head(mark(X30))))) :|: z = 1 + (1 + X30), X30 >= 0 mark(z) -{ 2 }-> active(from(active(from(mark(X34))))) :|: z = 1 + (1 + X34), X34 >= 0 mark(z) -{ 2 }-> active(from(active(filter(mark(X114), mark(X213))))) :|: X114 >= 0, X213 >= 0, z = 1 + (1 + X114 + X213) mark(z) -{ 2 }-> active(from(active(divides(mark(X117), mark(X216))))) :|: X216 >= 0, X117 >= 0, z = 1 + (1 + X117 + X216) mark(z) -{ 2 }-> active(from(active(cons(mark(X116), X215)))) :|: z = 1 + (1 + X116 + X215), X116 >= 0, X215 >= 0 mark(z) -{ 2 }-> active(from(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(from(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(from(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(from(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(from(0)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(from(1 + X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(filter(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(divides(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> active(cons(active(tail(mark(X337))), X2)) :|: z = 1 + (1 + X337) + X2, X2 >= 0, X337 >= 0 mark(z) -{ 2 }-> active(cons(active(sieve(mark(X340))), X2)) :|: X340 >= 0, X2 >= 0, z = 1 + (1 + X340) + X2 mark(z) -{ 2 }-> active(cons(active(s(mark(X338))), X2)) :|: X338 >= 0, z = 1 + (1 + X338) + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(if(mark(X1105), X2101, X341)), X2)) :|: X1105 >= 0, X2101 >= 0, X341 >= 0, X2 >= 0, z = 1 + (1 + X1105 + X2101 + X341) + X2 mark(z) -{ 2 }-> active(cons(active(head(mark(X336))), X2)) :|: X2 >= 0, z = 1 + (1 + X336) + X2, X336 >= 0 mark(z) -{ 2 }-> active(cons(active(from(mark(X339))), X2)) :|: z = 1 + (1 + X339) + X2, X339 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(filter(mark(X1104), mark(X2100))), X2)) :|: X1104 >= 0, X2100 >= 0, X2 >= 0, z = 1 + (1 + X1104 + X2100) + X2 mark(z) -{ 2 }-> active(cons(active(divides(mark(X1107), mark(X2103))), X2)) :|: X2103 >= 0, X1107 >= 0, z = 1 + (1 + X1107 + X2103) + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(cons(mark(X1106), X2102)), X2)) :|: X2102 >= 0, X1106 >= 0, z = 1 + (1 + X1106 + X2102) + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(3), X2)) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> active(cons(active(2), X2)) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(1), X2)) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(0), X2)) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 1 }-> active(cons(0, X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(cons(1 + X1, X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(3) :|: z = 3 mark(z) -{ 1 }-> active(2) :|: z = 2 mark(z) -{ 1 }-> active(1) :|: z = 1 mark(z) -{ 1 }-> active(0) :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 s(z) -{ 1 }-> s(X) :|: z = 1 + X, X >= 0 s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 s(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 sieve(z) -{ 1 }-> sieve(X) :|: z = 1 + X, X >= 0 sieve(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 sieve(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 tail(z) -{ 1 }-> tail(X) :|: z = 1 + X, X >= 0 tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 tail(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 ---------------------------------------- (27) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: active(z) -{ 1 }-> mark(X) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(X) :|: z = 1 + 3 + X + Y, Y >= 0, X >= 0 active(z) -{ 1 }-> mark(Y) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(Y) :|: Y >= 0, z = 1 + 1 + X + Y, X >= 0 active(z) -{ 1 }-> mark(sieve(from(s(0)))) :|: z = 2 active(z) -{ 1 }-> mark(sieve(from(s(1 + 0)))) :|: z = 2 active(z) -{ 1 }-> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) :|: Z >= 0, Y >= 0, X >= 0, z = 1 + (1 + (1 + X)) + (1 + Y + Z) active(z) -{ 2 }-> mark(cons(X, filter(X, sieve(X189)))) :|: z = 1 + (1 + X + (1 + X189)), X >= 0, X189 >= 0 active(z) -{ 2 }-> mark(cons(X, filter(X, sieve(X190)))) :|: z = 1 + (1 + X + (1 + X190)), X >= 0, X190 >= 0 active(z) -{ 1 }-> mark(cons(X, filter(X, 0))) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(cons(X, filter(X, 1 + Y))) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(cons(z - 1, from(0))) :|: z - 1 >= 0 active(z) -{ 1 }-> mark(cons(z - 1, from(1 + (z - 1)))) :|: z - 1 >= 0 active(z) -{ 2 }-> mark(cons(1 + (z - 2), from(s(z - 2)))) :|: z - 2 >= 0 active(z) -{ 0 }-> 0 :|: z >= 0 active(z) -{ 0 }-> 1 + z :|: z >= 0 cons(z, z') -{ 1 }-> cons(z, z' - 1) :|: z >= 0, z' - 1 >= 0 cons(z, z') -{ 1 }-> cons(z - 1, z') :|: z - 1 >= 0, z' >= 0 cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 cons(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 divides(z, z') -{ 1 }-> divides(z, z' - 1) :|: z >= 0, z' - 1 >= 0 divides(z, z') -{ 1 }-> divides(z - 1, z') :|: z - 1 >= 0, z' >= 0 divides(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 divides(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 encArg(z) -{ 0 }-> tail(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(if(encArg(x_1260), encArg(x_292), encArg(x_322))) :|: x_292 >= 0, x_1260 >= 0, z = 1 + (1 + x_1260 + x_292 + x_322), x_322 >= 0 encArg(z) -{ 0 }-> tail(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(filter(encArg(x_1261), encArg(x_293))) :|: x_293 >= 0, z = 1 + (1 + x_1261 + x_293), x_1261 >= 0 encArg(z) -{ 0 }-> tail(divides(encArg(x_1262), encArg(x_294))) :|: x_294 >= 0, z = 1 + (1 + x_1262 + x_294), x_1262 >= 0 encArg(z) -{ 0 }-> tail(cons(encArg(x_1257), encArg(x_291))) :|: x_1257 >= 0, z = 1 + (1 + x_1257 + x_291), x_291 >= 0 encArg(z) -{ 0 }-> tail(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tail(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> tail(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> tail(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> tail(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> tail(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> sieve(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(if(encArg(x_129), encArg(x_28), encArg(x_31))) :|: x_31 >= 0, z = 1 + (1 + x_129 + x_28 + x_31), x_28 >= 0, x_129 >= 0 encArg(z) -{ 0 }-> sieve(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(filter(encArg(x_130), encArg(x_29))) :|: x_130 >= 0, z = 1 + (1 + x_130 + x_29), x_29 >= 0 encArg(z) -{ 0 }-> sieve(divides(encArg(x_131), encArg(x_210))) :|: z = 1 + (1 + x_131 + x_210), x_131 >= 0, x_210 >= 0 encArg(z) -{ 0 }-> sieve(cons(encArg(x_126), encArg(x_27))) :|: x_126 >= 0, x_27 >= 0, z = 1 + (1 + x_126 + x_27) encArg(z) -{ 0 }-> sieve(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> sieve(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> sieve(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> sieve(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> sieve(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> sieve(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> s(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(if(encArg(x_151), encArg(x_216), encArg(x_33))) :|: x_216 >= 0, z = 1 + (1 + x_151 + x_216 + x_33), x_33 >= 0, x_151 >= 0 encArg(z) -{ 0 }-> s(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(filter(encArg(x_152), encArg(x_217))) :|: z = 1 + (1 + x_152 + x_217), x_217 >= 0, x_152 >= 0 encArg(z) -{ 0 }-> s(divides(encArg(x_153), encArg(x_218))) :|: z = 1 + (1 + x_153 + x_218), x_218 >= 0, x_153 >= 0 encArg(z) -{ 0 }-> s(cons(encArg(x_148), encArg(x_215))) :|: z = 1 + (1 + x_148 + x_215), x_215 >= 0, x_148 >= 0 encArg(z) -{ 0 }-> s(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> s(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> s(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> mark(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(if(encArg(x_118), encArg(x_24), encArg(x_3''))) :|: z = 1 + (1 + x_118 + x_24 + x_3''), x_24 >= 0, x_118 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> mark(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(filter(encArg(x_119), encArg(x_25))) :|: x_25 >= 0, z = 1 + (1 + x_119 + x_25), x_119 >= 0 encArg(z) -{ 0 }-> mark(divides(encArg(x_120), encArg(x_26))) :|: x_120 >= 0, z = 1 + (1 + x_120 + x_26), x_26 >= 0 encArg(z) -{ 0 }-> mark(cons(encArg(x_115), encArg(x_23))) :|: z = 1 + (1 + x_115 + x_23), x_115 >= 0, x_23 >= 0 encArg(z) -{ 0 }-> mark(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> mark(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> mark(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> mark(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> mark(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> mark(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> if(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> head(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(if(encArg(x_1249), encArg(x_288), encArg(x_321))) :|: x_321 >= 0, z = 1 + (1 + x_1249 + x_288 + x_321), x_1249 >= 0, x_288 >= 0 encArg(z) -{ 0 }-> head(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(filter(encArg(x_1250), encArg(x_289))) :|: x_289 >= 0, x_1250 >= 0, z = 1 + (1 + x_1250 + x_289) encArg(z) -{ 0 }-> head(divides(encArg(x_1251), encArg(x_290))) :|: z = 1 + (1 + x_1251 + x_290), x_1251 >= 0, x_290 >= 0 encArg(z) -{ 0 }-> head(cons(encArg(x_1246), encArg(x_287))) :|: z = 1 + (1 + x_1246 + x_287), x_1246 >= 0, x_287 >= 0 encArg(z) -{ 0 }-> head(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> head(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> head(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> head(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> head(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> head(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> from(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(if(encArg(x_140), encArg(x_212), encArg(x_32))) :|: x_32 >= 0, z = 1 + (1 + x_140 + x_212 + x_32), x_212 >= 0, x_140 >= 0 encArg(z) -{ 0 }-> from(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(filter(encArg(x_141), encArg(x_213))) :|: x_213 >= 0, z = 1 + (1 + x_141 + x_213), x_141 >= 0 encArg(z) -{ 0 }-> from(divides(encArg(x_142), encArg(x_214))) :|: x_214 >= 0, z = 1 + (1 + x_142 + x_214), x_142 >= 0 encArg(z) -{ 0 }-> from(cons(encArg(x_137), encArg(x_211))) :|: z = 1 + (1 + x_137 + x_211), x_137 >= 0, x_211 >= 0 encArg(z) -{ 0 }-> from(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> from(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> from(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> from(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> from(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> from(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> filter(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> divides(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> active(tail(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(sieve(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(mark(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(if(encArg(x_17), encArg(x_2''), encArg(x_3'))) :|: x_3' >= 0, z = 1 + (1 + x_17 + x_2'' + x_3'), x_17 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> active(head(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(from(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(filter(encArg(x_18), encArg(x_21))) :|: z = 1 + (1 + x_18 + x_21), x_18 >= 0, x_21 >= 0 encArg(z) -{ 0 }-> active(divides(encArg(x_19), encArg(x_22))) :|: z = 1 + (1 + x_19 + x_22), x_22 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> active(cons(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> active(active(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> active(3) :|: z = 1 + 3 encArg(z) -{ 0 }-> active(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> active(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> active(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> active(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> 3 :|: z = 3 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_0 -{ 0 }-> 0 :|: encode_active(z) -{ 0 }-> active(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(s(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(if(encArg(x_13648), encArg(x_21324), encArg(x_3330))) :|: x_13648 >= 0, x_21324 >= 0, z = 1 + x_13648 + x_21324 + x_3330, x_3330 >= 0 encode_active(z) -{ 0 }-> active(head(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(from(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(filter(encArg(x_13649), encArg(x_21325))) :|: x_13649 >= 0, x_21325 >= 0, z = 1 + x_13649 + x_21325 encode_active(z) -{ 0 }-> active(divides(encArg(x_13650), encArg(x_21326))) :|: z = 1 + x_13650 + x_21326, x_13650 >= 0, x_21326 >= 0 encode_active(z) -{ 0 }-> active(cons(encArg(x_13645), encArg(x_21323))) :|: x_13645 >= 0, x_21323 >= 0, z = 1 + x_13645 + x_21323 encode_active(z) -{ 0 }-> active(active(encArg(z - 1))) :|: z - 1 >= 0 encode_active(z) -{ 0 }-> active(3) :|: z = 3 encode_active(z) -{ 0 }-> active(2) :|: z = 2 encode_active(z) -{ 0 }-> active(1) :|: z = 1 encode_active(z) -{ 0 }-> active(0) :|: z = 0 encode_active(z) -{ 0 }-> active(0) :|: z >= 0 encode_active(z) -{ 0 }-> 0 :|: z >= 0 encode_cons(z, z') -{ 0 }-> cons(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_divides(z, z') -{ 0 }-> divides(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_divides(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_filter(z, z') -{ 0 }-> filter(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_filter(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_from(z) -{ 0 }-> from(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(s(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(if(encArg(x_13681), encArg(x_21336), encArg(x_3333))) :|: z = 1 + x_13681 + x_21336 + x_3333, x_3333 >= 0, x_13681 >= 0, x_21336 >= 0 encode_from(z) -{ 0 }-> from(head(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(from(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(filter(encArg(x_13682), encArg(x_21337))) :|: x_13682 >= 0, z = 1 + x_13682 + x_21337, x_21337 >= 0 encode_from(z) -{ 0 }-> from(divides(encArg(x_13683), encArg(x_21338))) :|: x_13683 >= 0, x_21338 >= 0, z = 1 + x_13683 + x_21338 encode_from(z) -{ 0 }-> from(cons(encArg(x_13678), encArg(x_21335))) :|: z = 1 + x_13678 + x_21335, x_21335 >= 0, x_13678 >= 0 encode_from(z) -{ 0 }-> from(active(encArg(z - 1))) :|: z - 1 >= 0 encode_from(z) -{ 0 }-> from(3) :|: z = 3 encode_from(z) -{ 0 }-> from(2) :|: z = 2 encode_from(z) -{ 0 }-> from(1) :|: z = 1 encode_from(z) -{ 0 }-> from(0) :|: z = 0 encode_from(z) -{ 0 }-> from(0) :|: z >= 0 encode_from(z) -{ 0 }-> 0 :|: z >= 0 encode_head(z) -{ 0 }-> head(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(s(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(if(encArg(x_13890), encArg(x_21412), encArg(x_3352))) :|: x_3352 >= 0, x_21412 >= 0, z = 1 + x_13890 + x_21412 + x_3352, x_13890 >= 0 encode_head(z) -{ 0 }-> head(head(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(from(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(filter(encArg(x_13891), encArg(x_21413))) :|: x_13891 >= 0, x_21413 >= 0, z = 1 + x_13891 + x_21413 encode_head(z) -{ 0 }-> head(divides(encArg(x_13892), encArg(x_21414))) :|: x_21414 >= 0, z = 1 + x_13892 + x_21414, x_13892 >= 0 encode_head(z) -{ 0 }-> head(cons(encArg(x_13887), encArg(x_21411))) :|: x_21411 >= 0, x_13887 >= 0, z = 1 + x_13887 + x_21411 encode_head(z) -{ 0 }-> head(active(encArg(z - 1))) :|: z - 1 >= 0 encode_head(z) -{ 0 }-> head(3) :|: z = 3 encode_head(z) -{ 0 }-> head(2) :|: z = 2 encode_head(z) -{ 0 }-> head(1) :|: z = 1 encode_head(z) -{ 0 }-> head(0) :|: z = 0 encode_head(z) -{ 0 }-> head(0) :|: z >= 0 encode_head(z) -{ 0 }-> 0 :|: z >= 0 encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_mark(z) -{ 0 }-> mark(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(s(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(if(encArg(x_13659), encArg(x_21328), encArg(x_3331))) :|: x_3331 >= 0, z = 1 + x_13659 + x_21328 + x_3331, x_13659 >= 0, x_21328 >= 0 encode_mark(z) -{ 0 }-> mark(head(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(from(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(filter(encArg(x_13660), encArg(x_21329))) :|: x_21329 >= 0, z = 1 + x_13660 + x_21329, x_13660 >= 0 encode_mark(z) -{ 0 }-> mark(divides(encArg(x_13661), encArg(x_21330))) :|: x_13661 >= 0, x_21330 >= 0, z = 1 + x_13661 + x_21330 encode_mark(z) -{ 0 }-> mark(cons(encArg(x_13656), encArg(x_21327))) :|: x_13656 >= 0, z = 1 + x_13656 + x_21327, x_21327 >= 0 encode_mark(z) -{ 0 }-> mark(active(encArg(z - 1))) :|: z - 1 >= 0 encode_mark(z) -{ 0 }-> mark(3) :|: z = 3 encode_mark(z) -{ 0 }-> mark(2) :|: z = 2 encode_mark(z) -{ 0 }-> mark(1) :|: z = 1 encode_mark(z) -{ 0 }-> mark(0) :|: z = 0 encode_mark(z) -{ 0 }-> mark(0) :|: z >= 0 encode_mark(z) -{ 0 }-> 0 :|: z >= 0 encode_primes -{ 0 }-> 2 :|: encode_primes -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(if(encArg(x_13692), encArg(x_21340), encArg(x_3334))) :|: x_3334 >= 0, z = 1 + x_13692 + x_21340 + x_3334, x_21340 >= 0, x_13692 >= 0 encode_s(z) -{ 0 }-> s(head(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(from(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(filter(encArg(x_13693), encArg(x_21341))) :|: x_13693 >= 0, x_21341 >= 0, z = 1 + x_13693 + x_21341 encode_s(z) -{ 0 }-> s(divides(encArg(x_13694), encArg(x_21342))) :|: x_21342 >= 0, z = 1 + x_13694 + x_21342, x_13694 >= 0 encode_s(z) -{ 0 }-> s(cons(encArg(x_13689), encArg(x_21339))) :|: z = 1 + x_13689 + x_21339, x_21339 >= 0, x_13689 >= 0 encode_s(z) -{ 0 }-> s(active(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(3) :|: z = 3 encode_s(z) -{ 0 }-> s(2) :|: z = 2 encode_s(z) -{ 0 }-> s(1) :|: z = 1 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_sieve(z) -{ 0 }-> sieve(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(s(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(if(encArg(x_13670), encArg(x_21332), encArg(x_3332))) :|: z = 1 + x_13670 + x_21332 + x_3332, x_21332 >= 0, x_3332 >= 0, x_13670 >= 0 encode_sieve(z) -{ 0 }-> sieve(head(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(from(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(filter(encArg(x_13671), encArg(x_21333))) :|: z = 1 + x_13671 + x_21333, x_13671 >= 0, x_21333 >= 0 encode_sieve(z) -{ 0 }-> sieve(divides(encArg(x_13672), encArg(x_21334))) :|: x_13672 >= 0, z = 1 + x_13672 + x_21334, x_21334 >= 0 encode_sieve(z) -{ 0 }-> sieve(cons(encArg(x_13667), encArg(x_21331))) :|: x_21331 >= 0, x_13667 >= 0, z = 1 + x_13667 + x_21331 encode_sieve(z) -{ 0 }-> sieve(active(encArg(z - 1))) :|: z - 1 >= 0 encode_sieve(z) -{ 0 }-> sieve(3) :|: z = 3 encode_sieve(z) -{ 0 }-> sieve(2) :|: z = 2 encode_sieve(z) -{ 0 }-> sieve(1) :|: z = 1 encode_sieve(z) -{ 0 }-> sieve(0) :|: z = 0 encode_sieve(z) -{ 0 }-> sieve(0) :|: z >= 0 encode_sieve(z) -{ 0 }-> 0 :|: z >= 0 encode_tail(z) -{ 0 }-> tail(tail(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(sieve(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(s(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(mark(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(if(encArg(x_13901), encArg(x_21416), encArg(x_3353))) :|: z = 1 + x_13901 + x_21416 + x_3353, x_3353 >= 0, x_13901 >= 0, x_21416 >= 0 encode_tail(z) -{ 0 }-> tail(head(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(from(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(filter(encArg(x_13902), encArg(x_21417))) :|: x_21417 >= 0, x_13902 >= 0, z = 1 + x_13902 + x_21417 encode_tail(z) -{ 0 }-> tail(divides(encArg(x_13903), encArg(x_21418))) :|: x_21418 >= 0, z = 1 + x_13903 + x_21418, x_13903 >= 0 encode_tail(z) -{ 0 }-> tail(cons(encArg(x_13898), encArg(x_21415))) :|: z = 1 + x_13898 + x_21415, x_13898 >= 0, x_21415 >= 0 encode_tail(z) -{ 0 }-> tail(active(encArg(z - 1))) :|: z - 1 >= 0 encode_tail(z) -{ 0 }-> tail(3) :|: z = 3 encode_tail(z) -{ 0 }-> tail(2) :|: z = 2 encode_tail(z) -{ 0 }-> tail(1) :|: z = 1 encode_tail(z) -{ 0 }-> tail(0) :|: z = 0 encode_tail(z) -{ 0 }-> tail(0) :|: z >= 0 encode_tail(z) -{ 0 }-> 0 :|: z >= 0 encode_true -{ 0 }-> 3 :|: encode_true -{ 0 }-> 0 :|: filter(z, z') -{ 1 }-> filter(z, z' - 1) :|: z >= 0, z' - 1 >= 0 filter(z, z') -{ 1 }-> filter(z - 1, z') :|: z - 1 >= 0, z' >= 0 filter(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 filter(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 from(z) -{ 1 }-> from(z - 1) :|: z - 1 >= 0 from(z) -{ 0 }-> 0 :|: z >= 0 from(z) -{ 0 }-> 1 + z :|: z >= 0 head(z) -{ 1 }-> head(z - 1) :|: z - 1 >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 head(z) -{ 0 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> if(z, z', z'' - 1) :|: z >= 0, z'' - 1 >= 0, z' >= 0 if(z, z', z'') -{ 1 }-> if(z, z' - 1, z'') :|: z >= 0, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 1 }-> if(z - 1, z', z'') :|: z - 1 >= 0, z'' >= 0, z' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 1 + z + z' + z'' :|: z >= 0, z' >= 0, z'' >= 0 mark(z) -{ 2 }-> active(tail(active(tail(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(tail(active(sieve(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(tail(active(s(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(tail(active(if(mark(X15), X24, X3'')))) :|: X3'' >= 0, z = 1 + (1 + X15 + X24 + X3''), X15 >= 0, X24 >= 0 mark(z) -{ 2 }-> active(tail(active(head(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(tail(active(from(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(tail(active(filter(mark(X13), mark(X23))))) :|: z = 1 + (1 + X13 + X23), X13 >= 0, X23 >= 0 mark(z) -{ 2 }-> active(tail(active(divides(mark(X17), mark(X26))))) :|: z = 1 + (1 + X17 + X26), X26 >= 0, X17 >= 0 mark(z) -{ 2 }-> active(tail(active(cons(mark(X16), X25)))) :|: X16 >= 0, z = 1 + (1 + X16 + X25), X25 >= 0 mark(z) -{ 2 }-> active(tail(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(tail(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(tail(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(tail(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(tail(0)) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(tail(1 + (z - 1))) :|: z - 1 >= 0 mark(z) -{ 2 }-> active(sieve(active(tail(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(sieve(active(sieve(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(sieve(active(s(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(sieve(active(if(mark(X197), X282, X326)))) :|: X282 >= 0, X326 >= 0, X197 >= 0, z = 1 + (1 + X197 + X282 + X326) mark(z) -{ 2 }-> active(sieve(active(head(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(sieve(active(from(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(sieve(active(filter(mark(X195), mark(X281))))) :|: X195 >= 0, z = 1 + (1 + X195 + X281), X281 >= 0 mark(z) -{ 2 }-> active(sieve(active(divides(mark(X199), mark(X284))))) :|: z = 1 + (1 + X199 + X284), X284 >= 0, X199 >= 0 mark(z) -{ 2 }-> active(sieve(active(cons(mark(X198), X283)))) :|: X283 >= 0, z = 1 + (1 + X198 + X283), X198 >= 0 mark(z) -{ 2 }-> active(sieve(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(sieve(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(sieve(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(sieve(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(sieve(0)) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(sieve(1 + (z - 1))) :|: z - 1 >= 0 mark(z) -{ 2 }-> active(s(active(tail(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(s(active(sieve(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(s(active(s(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(s(active(if(mark(X111), X210, X31)))) :|: z = 1 + (1 + X111 + X210 + X31), X31 >= 0, X111 >= 0, X210 >= 0 mark(z) -{ 2 }-> active(s(active(head(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(s(active(from(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(s(active(filter(mark(X110), mark(X28))))) :|: X110 >= 0, X28 >= 0, z = 1 + (1 + X110 + X28) mark(z) -{ 2 }-> active(s(active(divides(mark(X113), mark(X212))))) :|: X113 >= 0, X212 >= 0, z = 1 + (1 + X113 + X212) mark(z) -{ 2 }-> active(s(active(cons(mark(X112), X211)))) :|: z = 1 + (1 + X112 + X211), X112 >= 0, X211 >= 0 mark(z) -{ 2 }-> active(s(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(s(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(s(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(s(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(s(0)) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(s(1 + (z - 1))) :|: z - 1 >= 0 mark(z) -{ 2 }-> active(if(active(tail(mark(X201))), X2, X3)) :|: z = 1 + (1 + X201) + X2 + X3, X3 >= 0, X2 >= 0, X201 >= 0 mark(z) -{ 2 }-> active(if(active(sieve(mark(X204))), X2, X3)) :|: X204 >= 0, X3 >= 0, X2 >= 0, z = 1 + (1 + X204) + X2 + X3 mark(z) -{ 2 }-> active(if(active(s(mark(X202))), X2, X3)) :|: z = 1 + (1 + X202) + X2 + X3, X202 >= 0, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(if(mark(X1101), X286, X327)), X2, X3)) :|: X286 >= 0, X1101 >= 0, X3 >= 0, z = 1 + (1 + X1101 + X286 + X327) + X2 + X3, X327 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(head(mark(X200))), X2, X3)) :|: X3 >= 0, z = 1 + (1 + X200) + X2 + X3, X2 >= 0, X200 >= 0 mark(z) -{ 2 }-> active(if(active(from(mark(X203))), X2, X3)) :|: z = 1 + (1 + X203) + X2 + X3, X203 >= 0, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(filter(mark(X1100), mark(X285))), X2, X3)) :|: X1100 >= 0, X285 >= 0, X3 >= 0, z = 1 + (1 + X1100 + X285) + X2 + X3, X2 >= 0 mark(z) -{ 2 }-> active(if(active(divides(mark(X1103), mark(X288))), X2, X3)) :|: z = 1 + (1 + X1103 + X288) + X2 + X3, X288 >= 0, X3 >= 0, X2 >= 0, X1103 >= 0 mark(z) -{ 2 }-> active(if(active(cons(mark(X1102), X287)), X2, X3)) :|: z = 1 + (1 + X1102 + X287) + X2 + X3, X3 >= 0, X287 >= 0, X2 >= 0, X1102 >= 0 mark(z) -{ 2 }-> active(if(active(3), X2, X3)) :|: z = 1 + 3 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(2), X2, X3)) :|: z = 1 + 2 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(1), X2, X3)) :|: z = 1 + 1 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(if(active(0), X2, X3)) :|: z = 1 + 0 + X2 + X3, X3 >= 0, X2 >= 0 mark(z) -{ 1 }-> active(if(0, X2, X3)) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 mark(z) -{ 1 }-> active(if(1 + X1, X2, X3)) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 mark(z) -{ 2 }-> active(head(active(tail(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(head(active(sieve(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(head(active(s(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(head(active(if(mark(X1''), X2'', X3')))) :|: X1'' >= 0, X3' >= 0, z = 1 + (1 + X1'' + X2'' + X3'), X2'' >= 0 mark(z) -{ 2 }-> active(head(active(head(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(head(active(from(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(head(active(filter(mark(X1'), mark(X2'))))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0 mark(z) -{ 2 }-> active(head(active(divides(mark(X12), mark(X22))))) :|: X12 >= 0, X22 >= 0, z = 1 + (1 + X12 + X22) mark(z) -{ 2 }-> active(head(active(cons(mark(X11), X21)))) :|: z = 1 + (1 + X11 + X21), X11 >= 0, X21 >= 0 mark(z) -{ 2 }-> active(head(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(head(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(head(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(head(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(head(0)) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(head(1 + (z - 1))) :|: z - 1 >= 0 mark(z) -{ 2 }-> active(from(active(tail(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(from(active(sieve(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(from(active(s(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(from(active(if(mark(X115), X214, X36)))) :|: X36 >= 0, X214 >= 0, z = 1 + (1 + X115 + X214 + X36), X115 >= 0 mark(z) -{ 2 }-> active(from(active(head(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(from(active(from(mark(z - 2))))) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(from(active(filter(mark(X114), mark(X213))))) :|: X114 >= 0, X213 >= 0, z = 1 + (1 + X114 + X213) mark(z) -{ 2 }-> active(from(active(divides(mark(X117), mark(X216))))) :|: X216 >= 0, X117 >= 0, z = 1 + (1 + X117 + X216) mark(z) -{ 2 }-> active(from(active(cons(mark(X116), X215)))) :|: z = 1 + (1 + X116 + X215), X116 >= 0, X215 >= 0 mark(z) -{ 2 }-> active(from(active(3))) :|: z = 1 + 3 mark(z) -{ 2 }-> active(from(active(2))) :|: z = 1 + 2 mark(z) -{ 2 }-> active(from(active(1))) :|: z = 1 + 1 mark(z) -{ 2 }-> active(from(active(0))) :|: z = 1 + 0 mark(z) -{ 1 }-> active(from(0)) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(from(1 + (z - 1))) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(filter(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(divides(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> active(cons(active(tail(mark(X337))), X2)) :|: z = 1 + (1 + X337) + X2, X2 >= 0, X337 >= 0 mark(z) -{ 2 }-> active(cons(active(sieve(mark(X340))), X2)) :|: X340 >= 0, X2 >= 0, z = 1 + (1 + X340) + X2 mark(z) -{ 2 }-> active(cons(active(s(mark(X338))), X2)) :|: X338 >= 0, z = 1 + (1 + X338) + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(if(mark(X1105), X2101, X341)), X2)) :|: X1105 >= 0, X2101 >= 0, X341 >= 0, X2 >= 0, z = 1 + (1 + X1105 + X2101 + X341) + X2 mark(z) -{ 2 }-> active(cons(active(head(mark(X336))), X2)) :|: X2 >= 0, z = 1 + (1 + X336) + X2, X336 >= 0 mark(z) -{ 2 }-> active(cons(active(from(mark(X339))), X2)) :|: z = 1 + (1 + X339) + X2, X339 >= 0, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(filter(mark(X1104), mark(X2100))), X2)) :|: X1104 >= 0, X2100 >= 0, X2 >= 0, z = 1 + (1 + X1104 + X2100) + X2 mark(z) -{ 2 }-> active(cons(active(divides(mark(X1107), mark(X2103))), X2)) :|: X2103 >= 0, X1107 >= 0, z = 1 + (1 + X1107 + X2103) + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(cons(mark(X1106), X2102)), X2)) :|: X2102 >= 0, X1106 >= 0, z = 1 + (1 + X1106 + X2102) + X2, X2 >= 0 mark(z) -{ 2 }-> active(cons(active(3), z - 4)) :|: z - 4 >= 0 mark(z) -{ 2 }-> active(cons(active(2), z - 3)) :|: z - 3 >= 0 mark(z) -{ 2 }-> active(cons(active(1), z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> active(cons(active(0), z - 1)) :|: z - 1 >= 0 mark(z) -{ 1 }-> active(cons(0, X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(cons(1 + X1, X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(3) :|: z = 3 mark(z) -{ 1 }-> active(2) :|: z = 2 mark(z) -{ 1 }-> active(1) :|: z = 1 mark(z) -{ 1 }-> active(0) :|: z = 0 mark(z) -{ 0 }-> 0 :|: z >= 0 mark(z) -{ 0 }-> 1 + z :|: z >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 sieve(z) -{ 1 }-> sieve(z - 1) :|: z - 1 >= 0 sieve(z) -{ 0 }-> 0 :|: z >= 0 sieve(z) -{ 0 }-> 1 + z :|: z >= 0 tail(z) -{ 1 }-> tail(z - 1) :|: z - 1 >= 0 tail(z) -{ 0 }-> 0 :|: z >= 0 tail(z) -{ 0 }-> 1 + z :|: z >= 0 ---------------------------------------- (29) 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: encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_primes -> null_encode_primes [0] encode_mark(v0) -> null_encode_mark [0] encode_sieve(v0) -> null_encode_sieve [0] encode_from(v0) -> null_encode_from [0] encode_s(v0) -> null_encode_s [0] encode_0 -> null_encode_0 [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_if(v0, v1, v2) -> null_encode_if [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_filter(v0, v1) -> null_encode_filter [0] encode_divides(v0, v1) -> null_encode_divides [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] filter(v0, v1) -> null_filter [0] divides(v0, v1) -> null_divides [0] if(v0, v1, v2) -> null_if [0] head(v0) -> null_head [0] cons(v0, v1) -> null_cons [0] sieve(v0) -> null_sieve [0] from(v0) -> null_from [0] mark(v0) -> null_mark [0] And the following fresh constants: null_encArg, null_encode_active, null_encode_primes, null_encode_mark, null_encode_sieve, null_encode_from, null_encode_s, null_encode_0, null_encode_cons, null_encode_head, null_encode_tail, null_encode_if, null_encode_true, null_encode_false, null_encode_filter, null_encode_divides, null_tail, null_s, null_active, null_filter, null_divides, null_if, null_head, null_cons, null_sieve, null_from, null_mark ---------------------------------------- (30) 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: active(primes) -> mark(sieve(from(s(s(0))))) [1] mark(primes) -> active(primes) [1] mark(0) -> active(0) [1] mark(true) -> active(true) [1] mark(false) -> active(false) [1] mark(c_head(X)) -> active(head(mark(X))) [1] filter(X1, c_active(X2)) -> filter(X1, X2) [1] from(c_mark(X)) -> from(X) [1] active(c_head(c_cons(X, Y))) -> mark(X) [1] filter(c_mark(X1), X2) -> filter(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] divides(X1, c_mark(X2)) -> divides(X1, X2) [1] if(c_mark(X1), X2, X3) -> if(X1, X2, X3) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] sieve(c_mark(X)) -> sieve(X) [1] if(X1, c_active(X2), X3) -> if(X1, X2, X3) [1] mark(c_s(X)) -> active(s(mark(X))) [1] active(c_if(true, X, Y)) -> mark(X) [1] mark(c_from(X)) -> active(from(mark(X))) [1] s(c_active(X)) -> s(X) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] if(X1, X2, c_mark(X3)) -> if(X1, X2, X3) [1] sieve(c_active(X)) -> sieve(X) [1] if(X1, X2, c_active(X3)) -> if(X1, X2, X3) [1] divides(c_active(X1), X2) -> divides(X1, X2) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] head(c_active(X)) -> head(X) [1] mark(c_filter(X1, X2)) -> active(filter(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] active(c_sieve(c_cons(X, Y))) -> mark(cons(X, filter(X, sieve(Y)))) [1] if(X1, c_mark(X2), X3) -> if(X1, X2, X3) [1] from(c_active(X)) -> from(X) [1] tail(c_active(X)) -> tail(X) [1] s(c_mark(X)) -> s(X) [1] mark(c_sieve(X)) -> active(sieve(mark(X))) [1] filter(X1, c_mark(X2)) -> filter(X1, X2) [1] divides(c_mark(X1), X2) -> divides(X1, X2) [1] mark(c_if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) [1] active(c_filter(c_s(c_s(X)), c_cons(Y, Z))) -> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) [1] active(c_tail(c_cons(X, Y))) -> mark(Y) [1] filter(c_active(X1), X2) -> filter(X1, X2) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] active(c_if(false, X, Y)) -> mark(Y) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_from(X)) -> mark(cons(X, from(s(X)))) [1] divides(X1, c_active(X2)) -> divides(X1, X2) [1] mark(c_divides(X1, X2)) -> active(divides(mark(X1), mark(X2))) [1] if(c_active(X1), X2, X3) -> if(X1, X2, X3) [1] encArg(primes) -> primes [0] encArg(0) -> 0 [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) [0] encArg(cons_from(x_1)) -> from(encArg(x_1)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_filter(x_1, x_2)) -> filter(encArg(x_1), encArg(x_2)) [0] encArg(cons_divides(x_1, x_2)) -> divides(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_primes -> primes [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_sieve(x_1) -> sieve(encArg(x_1)) [0] encode_from(x_1) -> from(encArg(x_1)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_0 -> 0 [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_false -> false [0] encode_filter(x_1, x_2) -> filter(encArg(x_1), encArg(x_2)) [0] encode_divides(x_1, x_2) -> divides(encArg(x_1), encArg(x_2)) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] filter(x0, x1) -> c_filter(x0, x1) [0] divides(x0, x1) -> c_divides(x0, x1) [0] if(x0, x1, x2) -> c_if(x0, x1, x2) [0] head(x0) -> c_head(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] sieve(x0) -> c_sieve(x0) [0] from(x0) -> c_from(x0) [0] mark(x0) -> c_mark(x0) [0] encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_primes -> null_encode_primes [0] encode_mark(v0) -> null_encode_mark [0] encode_sieve(v0) -> null_encode_sieve [0] encode_from(v0) -> null_encode_from [0] encode_s(v0) -> null_encode_s [0] encode_0 -> null_encode_0 [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_if(v0, v1, v2) -> null_encode_if [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_filter(v0, v1) -> null_encode_filter [0] encode_divides(v0, v1) -> null_encode_divides [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] filter(v0, v1) -> null_filter [0] divides(v0, v1) -> null_divides [0] if(v0, v1, v2) -> null_if [0] head(v0) -> null_head [0] cons(v0, v1) -> null_cons [0] sieve(v0) -> null_sieve [0] from(v0) -> null_from [0] mark(v0) -> null_mark [0] The TRS has the following type information: active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark 0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark c_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark cons_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark -> primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encArg :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_primes :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_0 :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_true :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_false :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_encode_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_tail :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_s :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_active :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_filter :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_divides :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_if :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_head :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_cons :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_sieve :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_from :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark null_mark :: primes:0:true:false:c_head:c_active:c_mark:c_cons:c_tail:c_s:c_if:c_from:c_filter:c_sieve:c_divides:cons_active:cons_mark:cons_sieve:cons_from:cons_s:cons_cons:cons_head:cons_tail:cons_if:cons_filter:cons_divides:null_encArg:null_encode_active:null_encode_primes:null_encode_mark:null_encode_sieve:null_encode_from:null_encode_s:null_encode_0:null_encode_cons:null_encode_head:null_encode_tail:null_encode_if:null_encode_true:null_encode_false:null_encode_filter:null_encode_divides:null_tail:null_s:null_active:null_filter:null_divides:null_if:null_head:null_cons:null_sieve:null_from:null_mark Rewrite Strategy: INNERMOST ---------------------------------------- (31) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: primes => 2 0 => 0 true => 3 false => 1 null_encArg => 0 null_encode_active => 0 null_encode_primes => 0 null_encode_mark => 0 null_encode_sieve => 0 null_encode_from => 0 null_encode_s => 0 null_encode_0 => 0 null_encode_cons => 0 null_encode_head => 0 null_encode_tail => 0 null_encode_if => 0 null_encode_true => 0 null_encode_false => 0 null_encode_filter => 0 null_encode_divides => 0 null_tail => 0 null_s => 0 null_active => 0 null_filter => 0 null_divides => 0 null_if => 0 null_head => 0 null_cons => 0 null_sieve => 0 null_from => 0 null_mark => 0 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: active(z) -{ 1 }-> mark(X) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(X) :|: z = 1 + 3 + X + Y, Y >= 0, X >= 0 active(z) -{ 1 }-> mark(Y) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 1 }-> mark(Y) :|: Y >= 0, z = 1 + 1 + X + Y, X >= 0 active(z) -{ 1 }-> mark(sieve(from(s(s(0))))) :|: z = 2 active(z) -{ 1 }-> mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) :|: Z >= 0, Y >= 0, X >= 0, z = 1 + (1 + (1 + X)) + (1 + Y + Z) active(z) -{ 1 }-> mark(cons(X, from(s(X)))) :|: z = 1 + X, X >= 0 active(z) -{ 1 }-> mark(cons(X, filter(X, sieve(Y)))) :|: z = 1 + (1 + X + Y), Y >= 0, X >= 0 active(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 active(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 cons(z, z') -{ 1 }-> cons(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 cons(z, z') -{ 1 }-> cons(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 cons(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 divides(z, z') -{ 1 }-> divides(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 divides(z, z') -{ 1 }-> divides(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 divides(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 divides(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 encArg(z) -{ 0 }-> tail(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> sieve(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> s(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> mark(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> if(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> head(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> from(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> filter(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> divides(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> active(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> 3 :|: z = 3 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_0 -{ 0 }-> 0 :|: encode_active(z) -{ 0 }-> active(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_active(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_cons(z, z') -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_divides(z, z') -{ 0 }-> divides(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_divides(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_filter(z, z') -{ 0 }-> filter(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_filter(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_from(z) -{ 0 }-> from(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_from(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_head(z) -{ 0 }-> head(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_if(z, z', z'') -{ 0 }-> if(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3 encode_if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_mark(z) -{ 0 }-> mark(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_primes -{ 0 }-> 2 :|: encode_primes -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_sieve(z) -{ 0 }-> sieve(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_sieve(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_tail(z) -{ 0 }-> tail(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_true -{ 0 }-> 3 :|: encode_true -{ 0 }-> 0 :|: filter(z, z') -{ 1 }-> filter(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 filter(z, z') -{ 1 }-> filter(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 filter(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 filter(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 from(z) -{ 1 }-> from(X) :|: z = 1 + X, X >= 0 from(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 from(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 head(z) -{ 1 }-> head(X) :|: z = 1 + X, X >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 head(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 if(z, z', z'') -{ 1 }-> if(X1, X2, X3) :|: X1 >= 0, z = 1 + X1, X3 >= 0, X2 >= 0, z' = X2, z'' = X3 if(z, z', z'') -{ 1 }-> if(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z' = 1 + X2, X2 >= 0, z = X1, z'' = X3 if(z, z', z'') -{ 1 }-> if(X1, X2, X3) :|: X1 >= 0, X3 >= 0, X2 >= 0, z = X1, z' = X2, z'' = 1 + X3 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 if(z, z', z'') -{ 0 }-> 1 + x0 + x1 + x2 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1, z'' = x2, x2 >= 0 mark(z) -{ 1 }-> active(tail(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(sieve(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(s(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(if(mark(X1), X2, X3)) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 mark(z) -{ 1 }-> active(head(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(from(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(filter(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(divides(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(cons(mark(X1), X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(3) :|: z = 3 mark(z) -{ 1 }-> active(2) :|: z = 2 mark(z) -{ 1 }-> active(1) :|: z = 1 mark(z) -{ 1 }-> active(0) :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 s(z) -{ 1 }-> s(X) :|: z = 1 + X, X >= 0 s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 s(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 sieve(z) -{ 1 }-> sieve(X) :|: z = 1 + X, X >= 0 sieve(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 sieve(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 tail(z) -{ 1 }-> tail(X) :|: z = 1 + X, X >= 0 tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 tail(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (33) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_primes -> primes encode_mark(z0) -> mark(encArg(z0)) encode_sieve(z0) -> sieve(encArg(z0)) encode_from(z0) -> from(encArg(z0)) encode_s(z0) -> s(encArg(z0)) encode_0 -> 0 encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_if(z0, z1, z2) -> if(encArg(z0), encArg(z1), encArg(z2)) encode_true -> true encode_false -> false encode_filter(z0, z1) -> filter(encArg(z0), encArg(z1)) encode_divides(z0, z1) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(primes) -> c ENCARG(0) -> c1 ENCARG(true) -> c2 ENCARG(false) -> c3 ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_ACTIVE(z0) -> c15(ACTIVE(encArg(z0)), ENCARG(z0)) ENCODE_PRIMES -> c16 ENCODE_MARK(z0) -> c17(MARK(encArg(z0)), ENCARG(z0)) ENCODE_SIEVE(z0) -> c18(SIEVE(encArg(z0)), ENCARG(z0)) ENCODE_FROM(z0) -> c19(FROM(encArg(z0)), ENCARG(z0)) ENCODE_S(z0) -> c20(S(encArg(z0)), ENCARG(z0)) ENCODE_0 -> c21 ENCODE_CONS(z0, z1) -> c22(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_HEAD(z0) -> c23(HEAD(encArg(z0)), ENCARG(z0)) ENCODE_TAIL(z0) -> c24(TAIL(encArg(z0)), ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c25(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_TRUE -> c26 ENCODE_FALSE -> c27 ENCODE_FILTER(z0, z1) -> c28(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_DIVIDES(z0, z1) -> c29(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0))))), SIEVE(from(s(s(0)))), FROM(s(s(0))), S(s(0)), S(0)) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), CONS(z0, from(s(z0))), FROM(s(z0)), S(z0)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), IF(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1)))), DIVIDES(s(s(z0)), z1), S(s(z0)), S(z0), FILTER(s(s(z0)), z2), S(s(z0)), S(z0), CONS(z1, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), CONS(z0, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(0) -> c42(ACTIVE(0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(true) -> c47(ACTIVE(true)) MARK(false) -> c48(ACTIVE(false)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) S tuples: ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0))))), SIEVE(from(s(s(0)))), FROM(s(s(0))), S(s(0)), S(0)) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), CONS(z0, from(s(z0))), FROM(s(z0)), S(z0)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), IF(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1)))), DIVIDES(s(s(z0)), z1), S(s(z0)), S(z0), FILTER(s(s(z0)), z2), S(s(z0)), S(z0), CONS(z1, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), CONS(z0, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(0) -> c42(ACTIVE(0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(true) -> c47(ACTIVE(true)) MARK(false) -> c48(ACTIVE(false)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) K tuples:none Defined Rule Symbols: active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2, encArg_1, encode_active_1, encode_primes, encode_mark_1, encode_sieve_1, encode_from_1, encode_s_1, encode_0, encode_cons_2, encode_head_1, encode_tail_1, encode_if_3, encode_true, encode_false, encode_filter_2, encode_divides_2 Defined Pair Symbols: ENCARG_1, ENCODE_ACTIVE_1, ENCODE_PRIMES, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_0, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_TRUE, ENCODE_FALSE, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2 Compound Symbols: c, c1, c2, c3, c4_2, c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c15_2, c16, c17_2, c18_2, c19_2, c20_2, c21, c22_3, c23_2, c24_2, c25_4, c26, c27, c28_3, c29_3, c30_5, c31_4, c32_1, c33_1, c34_1, c35_1, c36_11, c37_4, c38_1, c39_3, c40_3, c41_3, c42_1, c43_3, c44_3, c45_3, c46_3, c47_1, c48_1, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1 ---------------------------------------- (35) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing nodes: ENCODE_0 -> c21 ENCODE_TRUE -> c26 ENCARG(true) -> c2 ENCARG(primes) -> c ENCARG(0) -> c1 ENCARG(false) -> c3 ENCODE_FALSE -> c27 ENCODE_PRIMES -> c16 ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_primes -> primes encode_mark(z0) -> mark(encArg(z0)) encode_sieve(z0) -> sieve(encArg(z0)) encode_from(z0) -> from(encArg(z0)) encode_s(z0) -> s(encArg(z0)) encode_0 -> 0 encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_if(z0, z1, z2) -> if(encArg(z0), encArg(z1), encArg(z2)) encode_true -> true encode_false -> false encode_filter(z0, z1) -> filter(encArg(z0), encArg(z1)) encode_divides(z0, z1) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_ACTIVE(z0) -> c15(ACTIVE(encArg(z0)), ENCARG(z0)) ENCODE_MARK(z0) -> c17(MARK(encArg(z0)), ENCARG(z0)) ENCODE_SIEVE(z0) -> c18(SIEVE(encArg(z0)), ENCARG(z0)) ENCODE_FROM(z0) -> c19(FROM(encArg(z0)), ENCARG(z0)) ENCODE_S(z0) -> c20(S(encArg(z0)), ENCARG(z0)) ENCODE_CONS(z0, z1) -> c22(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_HEAD(z0) -> c23(HEAD(encArg(z0)), ENCARG(z0)) ENCODE_TAIL(z0) -> c24(TAIL(encArg(z0)), ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c25(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_FILTER(z0, z1) -> c28(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_DIVIDES(z0, z1) -> c29(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0))))), SIEVE(from(s(s(0)))), FROM(s(s(0))), S(s(0)), S(0)) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), CONS(z0, from(s(z0))), FROM(s(z0)), S(z0)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), IF(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1)))), DIVIDES(s(s(z0)), z1), S(s(z0)), S(z0), FILTER(s(s(z0)), z2), S(s(z0)), S(z0), CONS(z1, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), CONS(z0, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(0) -> c42(ACTIVE(0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(true) -> c47(ACTIVE(true)) MARK(false) -> c48(ACTIVE(false)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) S tuples: ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0))))), SIEVE(from(s(s(0)))), FROM(s(s(0))), S(s(0)), S(0)) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), CONS(z0, from(s(z0))), FROM(s(z0)), S(z0)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), IF(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1)))), DIVIDES(s(s(z0)), z1), S(s(z0)), S(z0), FILTER(s(s(z0)), z2), S(s(z0)), S(z0), CONS(z1, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), CONS(z0, filter(z0, sieve(z1))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(0) -> c42(ACTIVE(0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(true) -> c47(ACTIVE(true)) MARK(false) -> c48(ACTIVE(false)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) K tuples:none Defined Rule Symbols: active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2, encArg_1, encode_active_1, encode_primes, encode_mark_1, encode_sieve_1, encode_from_1, encode_s_1, encode_0, encode_cons_2, encode_head_1, encode_tail_1, encode_if_3, encode_true, encode_false, encode_filter_2, encode_divides_2 Defined Pair Symbols: ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2 Compound Symbols: c4_2, c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c15_2, c17_2, c18_2, c19_2, c20_2, c22_3, c23_2, c24_2, c25_4, c28_3, c29_3, c30_5, c31_4, c32_1, c33_1, c34_1, c35_1, c36_11, c37_4, c38_1, c39_3, c40_3, c41_3, c42_1, c43_3, c44_3, c45_3, c46_3, c47_1, c48_1, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1 ---------------------------------------- (37) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 14 trailing tuple parts ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_primes -> primes encode_mark(z0) -> mark(encArg(z0)) encode_sieve(z0) -> sieve(encArg(z0)) encode_from(z0) -> from(encArg(z0)) encode_s(z0) -> s(encArg(z0)) encode_0 -> 0 encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_if(z0, z1, z2) -> if(encArg(z0), encArg(z1), encArg(z2)) encode_true -> true encode_false -> false encode_filter(z0, z1) -> filter(encArg(z0), encArg(z1)) encode_divides(z0, z1) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_ACTIVE(z0) -> c15(ACTIVE(encArg(z0)), ENCARG(z0)) ENCODE_MARK(z0) -> c17(MARK(encArg(z0)), ENCARG(z0)) ENCODE_SIEVE(z0) -> c18(SIEVE(encArg(z0)), ENCARG(z0)) ENCODE_FROM(z0) -> c19(FROM(encArg(z0)), ENCARG(z0)) ENCODE_S(z0) -> c20(S(encArg(z0)), ENCARG(z0)) ENCODE_CONS(z0, z1) -> c22(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_HEAD(z0) -> c23(HEAD(encArg(z0)), ENCARG(z0)) ENCODE_TAIL(z0) -> c24(TAIL(encArg(z0)), ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c25(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_FILTER(z0, z1) -> c28(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_DIVIDES(z0, z1) -> c29(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2, encArg_1, encode_active_1, encode_primes, encode_mark_1, encode_sieve_1, encode_from_1, encode_s_1, encode_0, encode_cons_2, encode_head_1, encode_tail_1, encode_if_3, encode_true, encode_false, encode_filter_2, encode_divides_2 Defined Pair Symbols: ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2 Compound Symbols: c4_2, c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c15_2, c17_2, c18_2, c19_2, c20_2, c22_3, c23_2, c24_2, c25_4, c28_3, c29_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48 ---------------------------------------- (39) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_primes -> primes encode_mark(z0) -> mark(encArg(z0)) encode_sieve(z0) -> sieve(encArg(z0)) encode_from(z0) -> from(encArg(z0)) encode_s(z0) -> s(encArg(z0)) encode_0 -> 0 encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_if(z0, z1, z2) -> if(encArg(z0), encArg(z1), encArg(z2)) encode_true -> true encode_false -> false encode_filter(z0, z1) -> filter(encArg(z0), encArg(z1)) encode_divides(z0, z1) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_ACTIVE(z0) -> c(ENCARG(z0)) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_MARK(z0) -> c(ENCARG(z0)) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_SIEVE(z0) -> c(ENCARG(z0)) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_FROM(z0) -> c(ENCARG(z0)) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_S(z0) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_CONS(z0, z1) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(ENCARG(z1)) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_HEAD(z0) -> c(ENCARG(z0)) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_TAIL(z0) -> c(ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_IF(z0, z1, z2) -> c(ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c(ENCARG(z1)) ENCODE_IF(z0, z1, z2) -> c(ENCARG(z2)) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_FILTER(z0, z1) -> c(ENCARG(z0)) ENCODE_FILTER(z0, z1) -> c(ENCARG(z1)) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(ENCARG(z0)) ENCODE_DIVIDES(z0, z1) -> c(ENCARG(z1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2, encArg_1, encode_active_1, encode_primes, encode_mark_1, encode_sieve_1, encode_from_1, encode_s_1, encode_0, encode_cons_2, encode_head_1, encode_tail_1, encode_if_3, encode_true, encode_false, encode_filter_2, encode_divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c4_2, c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1 ---------------------------------------- (41) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 16 leading nodes: ENCODE_ACTIVE(z0) -> c(ENCARG(z0)) ENCODE_MARK(z0) -> c(ENCARG(z0)) ENCODE_SIEVE(z0) -> c(ENCARG(z0)) ENCODE_FROM(z0) -> c(ENCARG(z0)) ENCODE_S(z0) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(ENCARG(z1)) ENCODE_HEAD(z0) -> c(ENCARG(z0)) ENCODE_TAIL(z0) -> c(ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c(ENCARG(z0)) ENCODE_IF(z0, z1, z2) -> c(ENCARG(z1)) ENCODE_IF(z0, z1, z2) -> c(ENCARG(z2)) ENCODE_FILTER(z0, z1) -> c(ENCARG(z0)) ENCODE_FILTER(z0, z1) -> c(ENCARG(z1)) ENCODE_DIVIDES(z0, z1) -> c(ENCARG(z0)) ENCODE_DIVIDES(z0, z1) -> c(ENCARG(z1)) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_primes -> primes encode_mark(z0) -> mark(encArg(z0)) encode_sieve(z0) -> sieve(encArg(z0)) encode_from(z0) -> from(encArg(z0)) encode_s(z0) -> s(encArg(z0)) encode_0 -> 0 encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_if(z0, z1, z2) -> if(encArg(z0), encArg(z1), encArg(z2)) encode_true -> true encode_false -> false encode_filter(z0, z1) -> filter(encArg(z0), encArg(z1)) encode_divides(z0, z1) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2, encArg_1, encode_active_1, encode_primes, encode_mark_1, encode_sieve_1, encode_from_1, encode_s_1, encode_0, encode_cons_2, encode_head_1, encode_tail_1, encode_if_3, encode_true, encode_false, encode_filter_2, encode_divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c4_2, c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1 ---------------------------------------- (43) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: encode_active(z0) -> active(encArg(z0)) encode_primes -> primes encode_mark(z0) -> mark(encArg(z0)) encode_sieve(z0) -> sieve(encArg(z0)) encode_from(z0) -> from(encArg(z0)) encode_s(z0) -> s(encArg(z0)) encode_0 -> 0 encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_if(z0, z1, z2) -> if(encArg(z0), encArg(z1), encArg(z2)) encode_true -> true encode_false -> false encode_filter(z0, z1) -> filter(encArg(z0), encArg(z1)) encode_divides(z0, z1) -> divides(encArg(z0), encArg(z1)) ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c4_2, c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1 ---------------------------------------- (45) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_active(z0)) -> c4(ACTIVE(encArg(z0)), ENCARG(z0)) by ENCARG(cons_active(primes)) -> c4(ACTIVE(primes), ENCARG(primes)) ENCARG(cons_active(0)) -> c4(ACTIVE(0), ENCARG(0)) ENCARG(cons_active(true)) -> c4(ACTIVE(true), ENCARG(true)) ENCARG(cons_active(false)) -> c4(ACTIVE(false), ENCARG(false)) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes), ENCARG(primes)) ENCARG(cons_active(0)) -> c4(ACTIVE(0), ENCARG(0)) ENCARG(cons_active(true)) -> c4(ACTIVE(true), ENCARG(true)) ENCARG(cons_active(false)) -> c4(ACTIVE(false), ENCARG(false)) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2 ---------------------------------------- (47) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ENCARG(cons_active(0)) -> c4(ACTIVE(0), ENCARG(0)) ENCARG(cons_active(true)) -> c4(ACTIVE(true), ENCARG(true)) ENCARG(cons_active(false)) -> c4(ACTIVE(false), ENCARG(false)) ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes), ENCARG(primes)) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2 ---------------------------------------- (49) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c5_2, c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1 ---------------------------------------- (51) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) by ENCARG(cons_mark(primes)) -> c5(MARK(primes), ENCARG(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0), ENCARG(0)) ENCARG(cons_mark(true)) -> c5(MARK(true), ENCARG(true)) ENCARG(cons_mark(false)) -> c5(MARK(false), ENCARG(false)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(primes)) -> c5(MARK(primes), ENCARG(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0), ENCARG(0)) ENCARG(cons_mark(true)) -> c5(MARK(true), ENCARG(true)) ENCARG(cons_mark(false)) -> c5(MARK(false), ENCARG(false)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2 ---------------------------------------- (53) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c6_2, c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1 ---------------------------------------- (55) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_sieve(z0)) -> c6(SIEVE(encArg(z0)), ENCARG(z0)) by ENCARG(cons_sieve(primes)) -> c6(SIEVE(primes), ENCARG(primes)) ENCARG(cons_sieve(0)) -> c6(SIEVE(0), ENCARG(0)) ENCARG(cons_sieve(true)) -> c6(SIEVE(true), ENCARG(true)) ENCARG(cons_sieve(false)) -> c6(SIEVE(false), ENCARG(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(primes)) -> c6(SIEVE(primes), ENCARG(primes)) ENCARG(cons_sieve(0)) -> c6(SIEVE(0), ENCARG(0)) ENCARG(cons_sieve(true)) -> c6(SIEVE(true), ENCARG(true)) ENCARG(cons_sieve(false)) -> c6(SIEVE(false), ENCARG(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2 ---------------------------------------- (57) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(cons_sieve(false)) -> c6(SIEVE(false), ENCARG(false)) ENCARG(cons_sieve(true)) -> c6(SIEVE(true), ENCARG(true)) ENCARG(cons_sieve(0)) -> c6(SIEVE(0), ENCARG(0)) ENCARG(cons_sieve(primes)) -> c6(SIEVE(primes), ENCARG(primes)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c7_2, c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2 ---------------------------------------- (59) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_from(z0)) -> c7(FROM(encArg(z0)), ENCARG(z0)) by ENCARG(cons_from(primes)) -> c7(FROM(primes), ENCARG(primes)) ENCARG(cons_from(0)) -> c7(FROM(0), ENCARG(0)) ENCARG(cons_from(true)) -> c7(FROM(true), ENCARG(true)) ENCARG(cons_from(false)) -> c7(FROM(false), ENCARG(false)) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(primes)) -> c7(FROM(primes), ENCARG(primes)) ENCARG(cons_from(0)) -> c7(FROM(0), ENCARG(0)) ENCARG(cons_from(true)) -> c7(FROM(true), ENCARG(true)) ENCARG(cons_from(false)) -> c7(FROM(false), ENCARG(false)) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2 ---------------------------------------- (61) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(cons_from(0)) -> c7(FROM(0), ENCARG(0)) ENCARG(cons_from(false)) -> c7(FROM(false), ENCARG(false)) ENCARG(cons_from(primes)) -> c7(FROM(primes), ENCARG(primes)) ENCARG(cons_from(true)) -> c7(FROM(true), ENCARG(true)) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c8_2, c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2 ---------------------------------------- (63) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_s(z0)) -> c8(S(encArg(z0)), ENCARG(z0)) by ENCARG(cons_s(primes)) -> c8(S(primes), ENCARG(primes)) ENCARG(cons_s(0)) -> c8(S(0), ENCARG(0)) ENCARG(cons_s(true)) -> c8(S(true), ENCARG(true)) ENCARG(cons_s(false)) -> c8(S(false), ENCARG(false)) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(primes)) -> c8(S(primes), ENCARG(primes)) ENCARG(cons_s(0)) -> c8(S(0), ENCARG(0)) ENCARG(cons_s(true)) -> c8(S(true), ENCARG(true)) ENCARG(cons_s(false)) -> c8(S(false), ENCARG(false)) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2 ---------------------------------------- (65) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(cons_s(true)) -> c8(S(true), ENCARG(true)) ENCARG(cons_s(false)) -> c8(S(false), ENCARG(false)) ENCARG(cons_s(primes)) -> c8(S(primes), ENCARG(primes)) ENCARG(cons_s(0)) -> c8(S(0), ENCARG(0)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c9_3, c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2 ---------------------------------------- (67) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_cons(z0, z1)) -> c9(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0), ENCARG(primes)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0), ENCARG(true)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0), ENCARG(false)) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(primes), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(true), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(false), ENCARG(x1)) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0), ENCARG(primes)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0), ENCARG(true)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0), ENCARG(false)) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(primes), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(true), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(false), ENCARG(x1)) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3 ---------------------------------------- (69) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c10_2, c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2 ---------------------------------------- (71) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_head(z0)) -> c10(HEAD(encArg(z0)), ENCARG(z0)) by ENCARG(cons_head(primes)) -> c10(HEAD(primes), ENCARG(primes)) ENCARG(cons_head(0)) -> c10(HEAD(0), ENCARG(0)) ENCARG(cons_head(true)) -> c10(HEAD(true), ENCARG(true)) ENCARG(cons_head(false)) -> c10(HEAD(false), ENCARG(false)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(primes)) -> c10(HEAD(primes), ENCARG(primes)) ENCARG(cons_head(0)) -> c10(HEAD(0), ENCARG(0)) ENCARG(cons_head(true)) -> c10(HEAD(true), ENCARG(true)) ENCARG(cons_head(false)) -> c10(HEAD(false), ENCARG(false)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2 ---------------------------------------- (73) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(cons_head(false)) -> c10(HEAD(false), ENCARG(false)) ENCARG(cons_head(0)) -> c10(HEAD(0), ENCARG(0)) ENCARG(cons_head(primes)) -> c10(HEAD(primes), ENCARG(primes)) ENCARG(cons_head(true)) -> c10(HEAD(true), ENCARG(true)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c11_2, c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_tail(z0)) -> c11(TAIL(encArg(z0)), ENCARG(z0)) by ENCARG(cons_tail(primes)) -> c11(TAIL(primes), ENCARG(primes)) ENCARG(cons_tail(0)) -> c11(TAIL(0), ENCARG(0)) ENCARG(cons_tail(true)) -> c11(TAIL(true), ENCARG(true)) ENCARG(cons_tail(false)) -> c11(TAIL(false), ENCARG(false)) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(primes)) -> c11(TAIL(primes), ENCARG(primes)) ENCARG(cons_tail(0)) -> c11(TAIL(0), ENCARG(0)) ENCARG(cons_tail(true)) -> c11(TAIL(true), ENCARG(true)) ENCARG(cons_tail(false)) -> c11(TAIL(false), ENCARG(false)) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2 ---------------------------------------- (77) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(cons_tail(primes)) -> c11(TAIL(primes), ENCARG(primes)) ENCARG(cons_tail(0)) -> c11(TAIL(0), ENCARG(0)) ENCARG(cons_tail(false)) -> c11(TAIL(false), ENCARG(false)) ENCARG(cons_tail(true)) -> c11(TAIL(true), ENCARG(true)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c12_4, c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2 ---------------------------------------- (79) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_if(z0, z1, z2)) -> c12(IF(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) by ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1), ENCARG(primes)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1), ENCARG(0)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1), ENCARG(true)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1), ENCARG(false)) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(primes), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(true), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(false), ENCARG(x2)) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(primes), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(true), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(false), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1), ENCARG(primes)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1), ENCARG(0)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1), ENCARG(true)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1), ENCARG(false)) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(primes), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(true), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(false), ENCARG(x2)) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(primes), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(true), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(false), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4 ---------------------------------------- (81) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 12 trailing tuple parts ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c13_3, c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3 ---------------------------------------- (83) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_filter(z0, z1)) -> c13(FILTER(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0), ENCARG(primes)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0), ENCARG(true)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0), ENCARG(false)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(primes), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(true), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(false), ENCARG(x1)) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0), ENCARG(primes)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0), ENCARG(true)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0), ENCARG(false)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(primes), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(true), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(false), ENCARG(x1)) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3 ---------------------------------------- (85) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c14_3, c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2 ---------------------------------------- (87) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_divides(z0, z1)) -> c14(DIVIDES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0), ENCARG(primes)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0), ENCARG(true)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0), ENCARG(false)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(primes), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(true), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(false), ENCARG(x1)) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0), ENCARG(primes)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0), ENCARG(true)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0), ENCARG(false)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(primes), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(true), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(false), ENCARG(x1)) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3 ---------------------------------------- (89) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c39_3, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2 ---------------------------------------- (91) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(sieve(z0)) -> c39(ACTIVE(sieve(mark(z0))), SIEVE(mark(z0)), MARK(z0)) by MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c40_3, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(from(z0)) -> c40(ACTIVE(from(mark(z0))), FROM(mark(z0)), MARK(z0)) by MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c41_3, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3 ---------------------------------------- (95) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(s(z0)) -> c41(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) by MARK(s(z0)) -> c41(ACTIVE(s(z0)), S(mark(z0)), MARK(z0)) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(ACTIVE(s(z0)), S(mark(z0)), MARK(z0)) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(ACTIVE(s(z0)), S(mark(z0)), MARK(z0)) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3 ---------------------------------------- (97) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c43_3, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2 ---------------------------------------- (99) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(cons(z0, z1)) -> c43(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) by MARK(cons(z0, z1)) -> c43(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c43(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c44_3, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(head(z0)) -> c44(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) by MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c45_3, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(tail(z0)) -> c45(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) by MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c46_3, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3 ---------------------------------------- (107) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(mark(z0), z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) by MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c49_4, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(filter(z0, z1)) -> c49(ACTIVE(filter(mark(z0), mark(z1))), FILTER(mark(z0), mark(z1)), MARK(z0), MARK(z1)) by MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c50_4, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(divides(z0, z1)) -> c50(ACTIVE(divides(mark(z0), mark(z1))), DIVIDES(mark(z0), mark(z1)), MARK(z0), MARK(z1)) by MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) by ENCODE_ACTIVE(primes) -> c(ACTIVE(primes)) ENCODE_ACTIVE(0) -> c(ACTIVE(0)) ENCODE_ACTIVE(true) -> c(ACTIVE(true)) ENCODE_ACTIVE(false) -> c(ACTIVE(false)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(primes) -> c(ACTIVE(primes)) ENCODE_ACTIVE(0) -> c(ACTIVE(0)) ENCODE_ACTIVE(true) -> c(ACTIVE(true)) ENCODE_ACTIVE(false) -> c(ACTIVE(false)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (115) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: ENCODE_ACTIVE(primes) -> c(ACTIVE(primes)) Removed 3 trailing nodes: ENCODE_ACTIVE(false) -> c(ACTIVE(false)) ENCODE_ACTIVE(true) -> c(ACTIVE(true)) ENCODE_ACTIVE(0) -> c(ACTIVE(0)) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_MARK(z0) -> c(MARK(encArg(z0))) by ENCODE_MARK(primes) -> c(MARK(primes)) ENCODE_MARK(0) -> c(MARK(0)) ENCODE_MARK(true) -> c(MARK(true)) ENCODE_MARK(false) -> c(MARK(false)) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(primes) -> c(MARK(primes)) ENCODE_MARK(0) -> c(MARK(0)) ENCODE_MARK(true) -> c(MARK(true)) ENCODE_MARK(false) -> c(MARK(false)) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (119) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 4 leading nodes: ENCODE_MARK(primes) -> c(MARK(primes)) ENCODE_MARK(0) -> c(MARK(0)) ENCODE_MARK(true) -> c(MARK(true)) ENCODE_MARK(false) -> c(MARK(false)) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_SIEVE(z0) -> c(SIEVE(encArg(z0))) by ENCODE_SIEVE(primes) -> c(SIEVE(primes)) ENCODE_SIEVE(0) -> c(SIEVE(0)) ENCODE_SIEVE(true) -> c(SIEVE(true)) ENCODE_SIEVE(false) -> c(SIEVE(false)) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(primes) -> c(SIEVE(primes)) ENCODE_SIEVE(0) -> c(SIEVE(0)) ENCODE_SIEVE(true) -> c(SIEVE(true)) ENCODE_SIEVE(false) -> c(SIEVE(false)) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (123) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCODE_SIEVE(true) -> c(SIEVE(true)) ENCODE_SIEVE(false) -> c(SIEVE(false)) ENCODE_SIEVE(primes) -> c(SIEVE(primes)) ENCODE_SIEVE(0) -> c(SIEVE(0)) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_FROM(z0) -> c(FROM(encArg(z0))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (125) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_FROM(z0) -> c(FROM(encArg(z0))) by ENCODE_FROM(primes) -> c(FROM(primes)) ENCODE_FROM(0) -> c(FROM(0)) ENCODE_FROM(true) -> c(FROM(true)) ENCODE_FROM(false) -> c(FROM(false)) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(primes) -> c(FROM(primes)) ENCODE_FROM(0) -> c(FROM(0)) ENCODE_FROM(true) -> c(FROM(true)) ENCODE_FROM(false) -> c(FROM(false)) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (127) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCODE_FROM(false) -> c(FROM(false)) ENCODE_FROM(true) -> c(FROM(true)) ENCODE_FROM(0) -> c(FROM(0)) ENCODE_FROM(primes) -> c(FROM(primes)) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_S(z0) -> c(S(encArg(z0))) by ENCODE_S(primes) -> c(S(primes)) ENCODE_S(0) -> c(S(0)) ENCODE_S(true) -> c(S(true)) ENCODE_S(false) -> c(S(false)) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(primes) -> c(S(primes)) ENCODE_S(0) -> c(S(0)) ENCODE_S(true) -> c(S(true)) ENCODE_S(false) -> c(S(false)) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (131) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCODE_S(false) -> c(S(false)) ENCODE_S(true) -> c(S(true)) ENCODE_S(0) -> c(S(0)) ENCODE_S(primes) -> c(S(primes)) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (133) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) by ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (135) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) by ENCODE_HEAD(primes) -> c(HEAD(primes)) ENCODE_HEAD(0) -> c(HEAD(0)) ENCODE_HEAD(true) -> c(HEAD(true)) ENCODE_HEAD(false) -> c(HEAD(false)) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(primes) -> c(HEAD(primes)) ENCODE_HEAD(0) -> c(HEAD(0)) ENCODE_HEAD(true) -> c(HEAD(true)) ENCODE_HEAD(false) -> c(HEAD(false)) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (137) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCODE_HEAD(primes) -> c(HEAD(primes)) ENCODE_HEAD(false) -> c(HEAD(false)) ENCODE_HEAD(0) -> c(HEAD(0)) ENCODE_HEAD(true) -> c(HEAD(true)) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (139) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) by ENCODE_TAIL(primes) -> c(TAIL(primes)) ENCODE_TAIL(0) -> c(TAIL(0)) ENCODE_TAIL(true) -> c(TAIL(true)) ENCODE_TAIL(false) -> c(TAIL(false)) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(primes) -> c(TAIL(primes)) ENCODE_TAIL(0) -> c(TAIL(0)) ENCODE_TAIL(true) -> c(TAIL(true)) ENCODE_TAIL(false) -> c(TAIL(false)) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (141) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCODE_TAIL(0) -> c(TAIL(0)) ENCODE_TAIL(true) -> c(TAIL(true)) ENCODE_TAIL(false) -> c(TAIL(false)) ENCODE_TAIL(primes) -> c(TAIL(primes)) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (143) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_IF(z0, z1, z2) -> c(IF(encArg(z0), encArg(z1), encArg(z2))) by ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_FILTER_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (145) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_FILTER(z0, z1) -> c(FILTER(encArg(z0), encArg(z1))) by ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCODE_DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c_1, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_DIVIDES(z0, z1) -> c(DIVIDES(encArg(z0), encArg(z1))) by ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1 ---------------------------------------- (149) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_active(cons_active(z0))) -> c4(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) by ENCARG(cons_active(cons_active(primes))) -> c4(ACTIVE(active(primes)), ENCARG(cons_active(primes))) ENCARG(cons_active(cons_active(0))) -> c4(ACTIVE(active(0)), ENCARG(cons_active(0))) ENCARG(cons_active(cons_active(true))) -> c4(ACTIVE(active(true)), ENCARG(cons_active(true))) ENCARG(cons_active(cons_active(false))) -> c4(ACTIVE(active(false)), ENCARG(cons_active(false))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(primes))) -> c4(ACTIVE(active(primes)), ENCARG(cons_active(primes))) ENCARG(cons_active(cons_active(0))) -> c4(ACTIVE(active(0)), ENCARG(cons_active(0))) ENCARG(cons_active(cons_active(true))) -> c4(ACTIVE(active(true)), ENCARG(cons_active(true))) ENCARG(cons_active(cons_active(false))) -> c4(ACTIVE(active(false)), ENCARG(cons_active(false))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1 ---------------------------------------- (151) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ENCARG(cons_active(cons_active(false))) -> c4(ACTIVE(active(false)), ENCARG(cons_active(false))) ENCARG(cons_active(cons_active(true))) -> c4(ACTIVE(active(true)), ENCARG(cons_active(true))) ENCARG(cons_active(cons_active(0))) -> c4(ACTIVE(active(0)), ENCARG(cons_active(0))) ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(primes))) -> c4(ACTIVE(active(primes)), ENCARG(cons_active(primes))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1 ---------------------------------------- (153) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) ENCARG(cons_active(cons_active(primes))) -> c1(ACTIVE(active(primes))) ENCARG(cons_active(cons_active(primes))) -> c1(ENCARG(cons_active(primes))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1, c1_1 ---------------------------------------- (155) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_active(cons_mark(z0))) -> c4(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) by ENCARG(cons_active(cons_mark(primes))) -> c4(ACTIVE(mark(primes)), ENCARG(cons_mark(primes))) ENCARG(cons_active(cons_mark(0))) -> c4(ACTIVE(mark(0)), ENCARG(cons_mark(0))) ENCARG(cons_active(cons_mark(true))) -> c4(ACTIVE(mark(true)), ENCARG(cons_mark(true))) ENCARG(cons_active(cons_mark(false))) -> c4(ACTIVE(mark(false)), ENCARG(cons_mark(false))) ENCARG(cons_active(cons_mark(cons_active(z0)))) -> c4(ACTIVE(mark(active(encArg(z0)))), ENCARG(cons_mark(cons_active(z0)))) ENCARG(cons_active(cons_mark(cons_mark(z0)))) -> c4(ACTIVE(mark(mark(encArg(z0)))), ENCARG(cons_mark(cons_mark(z0)))) ENCARG(cons_active(cons_mark(cons_sieve(z0)))) -> c4(ACTIVE(mark(sieve(encArg(z0)))), ENCARG(cons_mark(cons_sieve(z0)))) ENCARG(cons_active(cons_mark(cons_from(z0)))) -> c4(ACTIVE(mark(from(encArg(z0)))), ENCARG(cons_mark(cons_from(z0)))) ENCARG(cons_active(cons_mark(cons_s(z0)))) -> c4(ACTIVE(mark(s(encArg(z0)))), ENCARG(cons_mark(cons_s(z0)))) ENCARG(cons_active(cons_mark(cons_cons(z0, z1)))) -> c4(ACTIVE(mark(cons(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_cons(z0, z1)))) ENCARG(cons_active(cons_mark(cons_head(z0)))) -> c4(ACTIVE(mark(head(encArg(z0)))), ENCARG(cons_mark(cons_head(z0)))) ENCARG(cons_active(cons_mark(cons_tail(z0)))) -> c4(ACTIVE(mark(tail(encArg(z0)))), ENCARG(cons_mark(cons_tail(z0)))) ENCARG(cons_active(cons_mark(cons_if(z0, z1, z2)))) -> c4(ACTIVE(mark(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_mark(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_mark(cons_filter(z0, z1)))) -> c4(ACTIVE(mark(filter(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_filter(z0, z1)))) ENCARG(cons_active(cons_mark(cons_divides(z0, z1)))) -> c4(ACTIVE(mark(divides(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_divides(z0, z1)))) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) ENCARG(cons_active(cons_active(primes))) -> c1(ACTIVE(active(primes))) ENCARG(cons_active(cons_active(primes))) -> c1(ENCARG(cons_active(primes))) ENCARG(cons_active(cons_mark(primes))) -> c4(ACTIVE(mark(primes)), ENCARG(cons_mark(primes))) ENCARG(cons_active(cons_mark(0))) -> c4(ACTIVE(mark(0)), ENCARG(cons_mark(0))) ENCARG(cons_active(cons_mark(true))) -> c4(ACTIVE(mark(true)), ENCARG(cons_mark(true))) ENCARG(cons_active(cons_mark(false))) -> c4(ACTIVE(mark(false)), ENCARG(cons_mark(false))) ENCARG(cons_active(cons_mark(cons_active(z0)))) -> c4(ACTIVE(mark(active(encArg(z0)))), ENCARG(cons_mark(cons_active(z0)))) ENCARG(cons_active(cons_mark(cons_mark(z0)))) -> c4(ACTIVE(mark(mark(encArg(z0)))), ENCARG(cons_mark(cons_mark(z0)))) ENCARG(cons_active(cons_mark(cons_sieve(z0)))) -> c4(ACTIVE(mark(sieve(encArg(z0)))), ENCARG(cons_mark(cons_sieve(z0)))) ENCARG(cons_active(cons_mark(cons_from(z0)))) -> c4(ACTIVE(mark(from(encArg(z0)))), ENCARG(cons_mark(cons_from(z0)))) ENCARG(cons_active(cons_mark(cons_s(z0)))) -> c4(ACTIVE(mark(s(encArg(z0)))), ENCARG(cons_mark(cons_s(z0)))) ENCARG(cons_active(cons_mark(cons_cons(z0, z1)))) -> c4(ACTIVE(mark(cons(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_cons(z0, z1)))) ENCARG(cons_active(cons_mark(cons_head(z0)))) -> c4(ACTIVE(mark(head(encArg(z0)))), ENCARG(cons_mark(cons_head(z0)))) ENCARG(cons_active(cons_mark(cons_tail(z0)))) -> c4(ACTIVE(mark(tail(encArg(z0)))), ENCARG(cons_mark(cons_tail(z0)))) ENCARG(cons_active(cons_mark(cons_if(z0, z1, z2)))) -> c4(ACTIVE(mark(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_mark(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_mark(cons_filter(z0, z1)))) -> c4(ACTIVE(mark(filter(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_filter(z0, z1)))) ENCARG(cons_active(cons_mark(cons_divides(z0, z1)))) -> c4(ACTIVE(mark(divides(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_divides(z0, z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1, c1_1 ---------------------------------------- (157) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) ENCARG(cons_active(cons_active(primes))) -> c1(ACTIVE(active(primes))) ENCARG(cons_active(cons_active(primes))) -> c1(ENCARG(cons_active(primes))) ENCARG(cons_active(cons_mark(cons_active(z0)))) -> c4(ACTIVE(mark(active(encArg(z0)))), ENCARG(cons_mark(cons_active(z0)))) ENCARG(cons_active(cons_mark(cons_mark(z0)))) -> c4(ACTIVE(mark(mark(encArg(z0)))), ENCARG(cons_mark(cons_mark(z0)))) ENCARG(cons_active(cons_mark(cons_sieve(z0)))) -> c4(ACTIVE(mark(sieve(encArg(z0)))), ENCARG(cons_mark(cons_sieve(z0)))) ENCARG(cons_active(cons_mark(cons_from(z0)))) -> c4(ACTIVE(mark(from(encArg(z0)))), ENCARG(cons_mark(cons_from(z0)))) ENCARG(cons_active(cons_mark(cons_s(z0)))) -> c4(ACTIVE(mark(s(encArg(z0)))), ENCARG(cons_mark(cons_s(z0)))) ENCARG(cons_active(cons_mark(cons_cons(z0, z1)))) -> c4(ACTIVE(mark(cons(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_cons(z0, z1)))) ENCARG(cons_active(cons_mark(cons_head(z0)))) -> c4(ACTIVE(mark(head(encArg(z0)))), ENCARG(cons_mark(cons_head(z0)))) ENCARG(cons_active(cons_mark(cons_tail(z0)))) -> c4(ACTIVE(mark(tail(encArg(z0)))), ENCARG(cons_mark(cons_tail(z0)))) ENCARG(cons_active(cons_mark(cons_if(z0, z1, z2)))) -> c4(ACTIVE(mark(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_mark(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_mark(cons_filter(z0, z1)))) -> c4(ACTIVE(mark(filter(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_filter(z0, z1)))) ENCARG(cons_active(cons_mark(cons_divides(z0, z1)))) -> c4(ACTIVE(mark(divides(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_divides(z0, z1)))) ENCARG(cons_active(cons_mark(primes))) -> c2(ACTIVE(mark(primes))) ENCARG(cons_active(cons_mark(primes))) -> c2(ENCARG(cons_mark(primes))) ENCARG(cons_active(cons_mark(0))) -> c2(ACTIVE(mark(0))) ENCARG(cons_active(cons_mark(0))) -> c2(ENCARG(cons_mark(0))) ENCARG(cons_active(cons_mark(true))) -> c2(ACTIVE(mark(true))) ENCARG(cons_active(cons_mark(true))) -> c2(ENCARG(cons_mark(true))) ENCARG(cons_active(cons_mark(false))) -> c2(ACTIVE(mark(false))) ENCARG(cons_active(cons_mark(false))) -> c2(ENCARG(cons_mark(false))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1, c1_1, c2_1 ---------------------------------------- (159) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_active(cons_sieve(z0))) -> c4(ACTIVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) by ENCARG(cons_active(cons_sieve(primes))) -> c4(ACTIVE(sieve(primes)), ENCARG(cons_sieve(primes))) ENCARG(cons_active(cons_sieve(0))) -> c4(ACTIVE(sieve(0)), ENCARG(cons_sieve(0))) ENCARG(cons_active(cons_sieve(true))) -> c4(ACTIVE(sieve(true)), ENCARG(cons_sieve(true))) ENCARG(cons_active(cons_sieve(false))) -> c4(ACTIVE(sieve(false)), ENCARG(cons_sieve(false))) ENCARG(cons_active(cons_sieve(cons_active(z0)))) -> c4(ACTIVE(sieve(active(encArg(z0)))), ENCARG(cons_sieve(cons_active(z0)))) ENCARG(cons_active(cons_sieve(cons_mark(z0)))) -> c4(ACTIVE(sieve(mark(encArg(z0)))), ENCARG(cons_sieve(cons_mark(z0)))) ENCARG(cons_active(cons_sieve(cons_sieve(z0)))) -> c4(ACTIVE(sieve(sieve(encArg(z0)))), ENCARG(cons_sieve(cons_sieve(z0)))) ENCARG(cons_active(cons_sieve(cons_from(z0)))) -> c4(ACTIVE(sieve(from(encArg(z0)))), ENCARG(cons_sieve(cons_from(z0)))) ENCARG(cons_active(cons_sieve(cons_s(z0)))) -> c4(ACTIVE(sieve(s(encArg(z0)))), ENCARG(cons_sieve(cons_s(z0)))) ENCARG(cons_active(cons_sieve(cons_cons(z0, z1)))) -> c4(ACTIVE(sieve(cons(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_cons(z0, z1)))) ENCARG(cons_active(cons_sieve(cons_head(z0)))) -> c4(ACTIVE(sieve(head(encArg(z0)))), ENCARG(cons_sieve(cons_head(z0)))) ENCARG(cons_active(cons_sieve(cons_tail(z0)))) -> c4(ACTIVE(sieve(tail(encArg(z0)))), ENCARG(cons_sieve(cons_tail(z0)))) ENCARG(cons_active(cons_sieve(cons_if(z0, z1, z2)))) -> c4(ACTIVE(sieve(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_sieve(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_sieve(cons_filter(z0, z1)))) -> c4(ACTIVE(sieve(filter(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_filter(z0, z1)))) ENCARG(cons_active(cons_sieve(cons_divides(z0, z1)))) -> c4(ACTIVE(sieve(divides(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_divides(z0, z1)))) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) ENCARG(cons_active(cons_active(primes))) -> c1(ACTIVE(active(primes))) ENCARG(cons_active(cons_active(primes))) -> c1(ENCARG(cons_active(primes))) ENCARG(cons_active(cons_mark(cons_active(z0)))) -> c4(ACTIVE(mark(active(encArg(z0)))), ENCARG(cons_mark(cons_active(z0)))) ENCARG(cons_active(cons_mark(cons_mark(z0)))) -> c4(ACTIVE(mark(mark(encArg(z0)))), ENCARG(cons_mark(cons_mark(z0)))) ENCARG(cons_active(cons_mark(cons_sieve(z0)))) -> c4(ACTIVE(mark(sieve(encArg(z0)))), ENCARG(cons_mark(cons_sieve(z0)))) ENCARG(cons_active(cons_mark(cons_from(z0)))) -> c4(ACTIVE(mark(from(encArg(z0)))), ENCARG(cons_mark(cons_from(z0)))) ENCARG(cons_active(cons_mark(cons_s(z0)))) -> c4(ACTIVE(mark(s(encArg(z0)))), ENCARG(cons_mark(cons_s(z0)))) ENCARG(cons_active(cons_mark(cons_cons(z0, z1)))) -> c4(ACTIVE(mark(cons(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_cons(z0, z1)))) ENCARG(cons_active(cons_mark(cons_head(z0)))) -> c4(ACTIVE(mark(head(encArg(z0)))), ENCARG(cons_mark(cons_head(z0)))) ENCARG(cons_active(cons_mark(cons_tail(z0)))) -> c4(ACTIVE(mark(tail(encArg(z0)))), ENCARG(cons_mark(cons_tail(z0)))) ENCARG(cons_active(cons_mark(cons_if(z0, z1, z2)))) -> c4(ACTIVE(mark(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_mark(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_mark(cons_filter(z0, z1)))) -> c4(ACTIVE(mark(filter(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_filter(z0, z1)))) ENCARG(cons_active(cons_mark(cons_divides(z0, z1)))) -> c4(ACTIVE(mark(divides(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_divides(z0, z1)))) ENCARG(cons_active(cons_mark(primes))) -> c2(ACTIVE(mark(primes))) ENCARG(cons_active(cons_mark(primes))) -> c2(ENCARG(cons_mark(primes))) ENCARG(cons_active(cons_mark(0))) -> c2(ACTIVE(mark(0))) ENCARG(cons_active(cons_mark(0))) -> c2(ENCARG(cons_mark(0))) ENCARG(cons_active(cons_mark(true))) -> c2(ACTIVE(mark(true))) ENCARG(cons_active(cons_mark(true))) -> c2(ENCARG(cons_mark(true))) ENCARG(cons_active(cons_mark(false))) -> c2(ACTIVE(mark(false))) ENCARG(cons_active(cons_mark(false))) -> c2(ENCARG(cons_mark(false))) ENCARG(cons_active(cons_sieve(primes))) -> c4(ACTIVE(sieve(primes)), ENCARG(cons_sieve(primes))) ENCARG(cons_active(cons_sieve(0))) -> c4(ACTIVE(sieve(0)), ENCARG(cons_sieve(0))) ENCARG(cons_active(cons_sieve(true))) -> c4(ACTIVE(sieve(true)), ENCARG(cons_sieve(true))) ENCARG(cons_active(cons_sieve(false))) -> c4(ACTIVE(sieve(false)), ENCARG(cons_sieve(false))) ENCARG(cons_active(cons_sieve(cons_active(z0)))) -> c4(ACTIVE(sieve(active(encArg(z0)))), ENCARG(cons_sieve(cons_active(z0)))) ENCARG(cons_active(cons_sieve(cons_mark(z0)))) -> c4(ACTIVE(sieve(mark(encArg(z0)))), ENCARG(cons_sieve(cons_mark(z0)))) ENCARG(cons_active(cons_sieve(cons_sieve(z0)))) -> c4(ACTIVE(sieve(sieve(encArg(z0)))), ENCARG(cons_sieve(cons_sieve(z0)))) ENCARG(cons_active(cons_sieve(cons_from(z0)))) -> c4(ACTIVE(sieve(from(encArg(z0)))), ENCARG(cons_sieve(cons_from(z0)))) ENCARG(cons_active(cons_sieve(cons_s(z0)))) -> c4(ACTIVE(sieve(s(encArg(z0)))), ENCARG(cons_sieve(cons_s(z0)))) ENCARG(cons_active(cons_sieve(cons_cons(z0, z1)))) -> c4(ACTIVE(sieve(cons(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_cons(z0, z1)))) ENCARG(cons_active(cons_sieve(cons_head(z0)))) -> c4(ACTIVE(sieve(head(encArg(z0)))), ENCARG(cons_sieve(cons_head(z0)))) ENCARG(cons_active(cons_sieve(cons_tail(z0)))) -> c4(ACTIVE(sieve(tail(encArg(z0)))), ENCARG(cons_sieve(cons_tail(z0)))) ENCARG(cons_active(cons_sieve(cons_if(z0, z1, z2)))) -> c4(ACTIVE(sieve(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_sieve(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_sieve(cons_filter(z0, z1)))) -> c4(ACTIVE(sieve(filter(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_filter(z0, z1)))) ENCARG(cons_active(cons_sieve(cons_divides(z0, z1)))) -> c4(ACTIVE(sieve(divides(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_divides(z0, z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1, c1_1, c2_1 ---------------------------------------- (161) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(cons_active(cons_sieve(false))) -> c4(ACTIVE(sieve(false)), ENCARG(cons_sieve(false))) ENCARG(cons_active(cons_sieve(0))) -> c4(ACTIVE(sieve(0)), ENCARG(cons_sieve(0))) ENCARG(cons_active(cons_sieve(true))) -> c4(ACTIVE(sieve(true)), ENCARG(cons_sieve(true))) ENCARG(cons_active(cons_sieve(primes))) -> c4(ACTIVE(sieve(primes)), ENCARG(cons_sieve(primes))) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: encArg(primes) -> primes encArg(0) -> 0 encArg(true) -> true encArg(false) -> false encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_sieve(z0)) -> sieve(encArg(z0)) encArg(cons_from(z0)) -> from(encArg(z0)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_if(z0, z1, z2)) -> if(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_filter(z0, z1)) -> filter(encArg(z0), encArg(z1)) encArg(cons_divides(z0, z1)) -> divides(encArg(z0), encArg(z1)) active(primes) -> mark(sieve(from(s(s(0))))) active(from(z0)) -> mark(cons(z0, from(s(z0)))) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(if(true, z0, z1)) -> mark(z0) active(if(false, z0, z1)) -> mark(z1) active(filter(s(s(z0)), cons(z1, z2))) -> mark(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))) active(sieve(cons(z0, z1))) -> mark(cons(z0, filter(z0, sieve(z1)))) mark(primes) -> active(primes) mark(sieve(z0)) -> active(sieve(mark(z0))) mark(from(z0)) -> active(from(mark(z0))) mark(s(z0)) -> active(s(mark(z0))) mark(0) -> active(0) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(if(z0, z1, z2)) -> active(if(mark(z0), z1, z2)) mark(true) -> active(true) mark(false) -> active(false) mark(filter(z0, z1)) -> active(filter(mark(z0), mark(z1))) mark(divides(z0, z1)) -> active(divides(mark(z0), mark(z1))) sieve(mark(z0)) -> sieve(z0) sieve(active(z0)) -> sieve(z0) from(mark(z0)) -> from(z0) from(active(z0)) -> from(z0) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) if(mark(z0), z1, z2) -> if(z0, z1, z2) if(z0, mark(z1), z2) -> if(z0, z1, z2) if(z0, z1, mark(z2)) -> if(z0, z1, z2) if(active(z0), z1, z2) -> if(z0, z1, z2) if(z0, active(z1), z2) -> if(z0, z1, z2) if(z0, z1, active(z2)) -> if(z0, z1, z2) filter(mark(z0), z1) -> filter(z0, z1) filter(z0, mark(z1)) -> filter(z0, z1) filter(active(z0), z1) -> filter(z0, z1) filter(z0, active(z1)) -> filter(z0, z1) divides(mark(z0), z1) -> divides(z0, z1) divides(z0, mark(z1)) -> divides(z0, z1) divides(active(z0), z1) -> divides(z0, z1) divides(z0, active(z1)) -> divides(z0, z1) Tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 ENCARG(cons_active(cons_from(z0))) -> c4(ACTIVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_active(cons_s(z0))) -> c4(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c4(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_head(z0))) -> c4(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c4(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_if(z0, z1, z2))) -> c4(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_active(cons_filter(z0, z1))) -> c4(ACTIVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_active(cons_divides(z0, z1))) -> c4(ACTIVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_active(primes)) -> c4(ACTIVE(primes)) ENCARG(cons_mark(cons_active(z0))) -> c5(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c5(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_sieve(z0))) -> c5(MARK(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_mark(cons_from(z0))) -> c5(MARK(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_mark(cons_s(z0))) -> c5(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c5(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_head(z0))) -> c5(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c5(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_if(z0, z1, z2))) -> c5(MARK(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_mark(cons_filter(z0, z1))) -> c5(MARK(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_mark(cons_divides(z0, z1))) -> c5(MARK(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_mark(primes)) -> c5(MARK(primes)) ENCARG(cons_mark(0)) -> c5(MARK(0)) ENCARG(cons_mark(true)) -> c5(MARK(true)) ENCARG(cons_mark(false)) -> c5(MARK(false)) ENCARG(cons_sieve(cons_active(z0))) -> c6(SIEVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_sieve(cons_mark(z0))) -> c6(SIEVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_sieve(cons_sieve(z0))) -> c6(SIEVE(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_sieve(cons_from(z0))) -> c6(SIEVE(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_sieve(cons_s(z0))) -> c6(SIEVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_sieve(cons_cons(z0, z1))) -> c6(SIEVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sieve(cons_head(z0))) -> c6(SIEVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_sieve(cons_tail(z0))) -> c6(SIEVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_sieve(cons_if(z0, z1, z2))) -> c6(SIEVE(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_sieve(cons_filter(z0, z1))) -> c6(SIEVE(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_sieve(cons_divides(z0, z1))) -> c6(SIEVE(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_from(cons_active(z0))) -> c7(FROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_from(cons_mark(z0))) -> c7(FROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_from(cons_sieve(z0))) -> c7(FROM(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_from(cons_from(z0))) -> c7(FROM(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_from(cons_s(z0))) -> c7(FROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_from(cons_cons(z0, z1))) -> c7(FROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_from(cons_head(z0))) -> c7(FROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_from(cons_tail(z0))) -> c7(FROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_from(cons_if(z0, z1, z2))) -> c7(FROM(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_from(cons_filter(z0, z1))) -> c7(FROM(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_from(cons_divides(z0, z1))) -> c7(FROM(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_s(cons_active(z0))) -> c8(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c8(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_sieve(z0))) -> c8(S(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_s(cons_from(z0))) -> c8(S(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_s(cons_s(z0))) -> c8(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c8(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_head(z0))) -> c8(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c8(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_if(z0, z1, z2))) -> c8(S(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_s(cons_filter(z0, z1))) -> c8(S(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_s(cons_divides(z0, z1))) -> c8(S(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c9(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c9(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_sieve(z0))) -> c9(CONS(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_cons(x0, cons_from(z0))) -> c9(CONS(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_cons(x0, cons_s(z0))) -> c9(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c9(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_head(z0))) -> c9(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c9(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_if(z0, z1, z2))) -> c9(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_cons(x0, cons_filter(z0, z1))) -> c9(CONS(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_cons(x0, cons_divides(z0, z1))) -> c9(CONS(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c9(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c9(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sieve(z0), x1)) -> c9(CONS(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_from(z0), x1)) -> c9(CONS(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c9(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c9(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c9(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c9(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_if(z0, z1, z2), x1)) -> c9(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_cons(cons_filter(z0, z1), x1)) -> c9(CONS(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_divides(z0, z1), x1)) -> c9(CONS(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, primes)) -> c9(CONS(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_cons(x0, 0)) -> c9(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, true)) -> c9(CONS(encArg(x0), true), ENCARG(x0)) ENCARG(cons_cons(x0, false)) -> c9(CONS(encArg(x0), false), ENCARG(x0)) ENCARG(cons_cons(primes, x1)) -> c9(CONS(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(0, x1)) -> c9(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(true, x1)) -> c9(CONS(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(false, x1)) -> c9(CONS(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_head(cons_active(z0))) -> c10(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c10(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_sieve(z0))) -> c10(HEAD(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_head(cons_from(z0))) -> c10(HEAD(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_head(cons_s(z0))) -> c10(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c10(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_head(z0))) -> c10(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c10(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_if(z0, z1, z2))) -> c10(HEAD(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_head(cons_filter(z0, z1))) -> c10(HEAD(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_head(cons_divides(z0, z1))) -> c10(HEAD(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c11(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c11(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_sieve(z0))) -> c11(TAIL(sieve(encArg(z0))), ENCARG(cons_sieve(z0))) ENCARG(cons_tail(cons_from(z0))) -> c11(TAIL(from(encArg(z0))), ENCARG(cons_from(z0))) ENCARG(cons_tail(cons_s(z0))) -> c11(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c11(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_head(z0))) -> c11(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c11(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_if(z0, z1, z2))) -> c11(TAIL(if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_tail(cons_filter(z0, z1))) -> c11(TAIL(filter(encArg(z0), encArg(z1))), ENCARG(cons_filter(z0, z1))) ENCARG(cons_tail(cons_divides(z0, z1))) -> c11(TAIL(divides(encArg(z0), encArg(z1))), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, x1, cons_active(z0))) -> c12(IF(encArg(x0), encArg(x1), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0))) ENCARG(cons_if(x0, x1, cons_mark(z0))) -> c12(IF(encArg(x0), encArg(x1), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0))) ENCARG(cons_if(x0, x1, cons_sieve(z0))) -> c12(IF(encArg(x0), encArg(x1), sieve(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_sieve(z0))) ENCARG(cons_if(x0, x1, cons_from(z0))) -> c12(IF(encArg(x0), encArg(x1), from(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_from(z0))) ENCARG(cons_if(x0, x1, cons_s(z0))) -> c12(IF(encArg(x0), encArg(x1), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0))) ENCARG(cons_if(x0, x1, cons_cons(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1))) ENCARG(cons_if(x0, x1, cons_head(z0))) -> c12(IF(encArg(x0), encArg(x1), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0))) ENCARG(cons_if(x0, x1, cons_tail(z0))) -> c12(IF(encArg(x0), encArg(x1), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0))) ENCARG(cons_if(x0, x1, cons_if(z0, z1, z2))) -> c12(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_if(x0, x1, cons_filter(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_filter(z0, z1))) ENCARG(cons_if(x0, x1, cons_divides(z0, z1))) -> c12(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(cons_divides(z0, z1))) ENCARG(cons_if(x0, cons_active(z0), x2)) -> c12(IF(encArg(x0), active(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_mark(z0), x2)) -> c12(IF(encArg(x0), mark(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_sieve(z0), x2)) -> c12(IF(encArg(x0), sieve(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_sieve(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_from(z0), x2)) -> c12(IF(encArg(x0), from(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_from(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_s(z0), x2)) -> c12(IF(encArg(x0), s(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_cons(z0, z1), x2)) -> c12(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_head(z0), x2)) -> c12(IF(encArg(x0), head(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_tail(z0), x2)) -> c12(IF(encArg(x0), tail(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2)) ENCARG(cons_if(x0, cons_if(z0, z1, z2), x2)) -> c12(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_if(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_if(x0, cons_filter(z0, z1), x2)) -> c12(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_filter(z0, z1)), ENCARG(x2)) ENCARG(cons_if(x0, cons_divides(z0, z1), x2)) -> c12(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(cons_divides(z0, z1)), ENCARG(x2)) ENCARG(cons_if(cons_active(z0), x1, x2)) -> c12(IF(active(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_mark(z0), x1, x2)) -> c12(IF(mark(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_sieve(z0), x1, x2)) -> c12(IF(sieve(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_sieve(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_from(z0), x1, x2)) -> c12(IF(from(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_from(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_s(z0), x1, x2)) -> c12(IF(s(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_cons(z0, z1), x1, x2)) -> c12(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_head(z0), x1, x2)) -> c12(IF(head(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_tail(z0), x1, x2)) -> c12(IF(tail(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_if(z0, z1, z2), x1, x2)) -> c12(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_filter(z0, z1), x1, x2)) -> c12(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_filter(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(cons_divides(z0, z1), x1, x2)) -> c12(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(cons_divides(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(x0, x1, primes)) -> c12(IF(encArg(x0), encArg(x1), primes), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, 0)) -> c12(IF(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, true)) -> c12(IF(encArg(x0), encArg(x1), true), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, x1, false)) -> c12(IF(encArg(x0), encArg(x1), false), ENCARG(x0), ENCARG(x1)) ENCARG(cons_if(x0, primes, x2)) -> c12(IF(encArg(x0), primes, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, 0, x2)) -> c12(IF(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, true, x2)) -> c12(IF(encArg(x0), true, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(x0, false, x2)) -> c12(IF(encArg(x0), false, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_if(primes, x1, x2)) -> c12(IF(primes, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(0, x1, x2)) -> c12(IF(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(true, x1, x2)) -> c12(IF(true, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_if(false, x1, x2)) -> c12(IF(false, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_filter(x0, cons_active(z0))) -> c13(FILTER(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_filter(x0, cons_mark(z0))) -> c13(FILTER(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_filter(x0, cons_sieve(z0))) -> c13(FILTER(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_filter(x0, cons_from(z0))) -> c13(FILTER(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_filter(x0, cons_s(z0))) -> c13(FILTER(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_filter(x0, cons_cons(z0, z1))) -> c13(FILTER(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_filter(x0, cons_head(z0))) -> c13(FILTER(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_filter(x0, cons_tail(z0))) -> c13(FILTER(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_filter(x0, cons_if(z0, z1, z2))) -> c13(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_filter(x0, cons_filter(z0, z1))) -> c13(FILTER(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_filter(x0, cons_divides(z0, z1))) -> c13(FILTER(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_filter(cons_active(z0), x1)) -> c13(FILTER(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_mark(z0), x1)) -> c13(FILTER(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_sieve(z0), x1)) -> c13(FILTER(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_from(z0), x1)) -> c13(FILTER(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_s(z0), x1)) -> c13(FILTER(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_cons(z0, z1), x1)) -> c13(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_head(z0), x1)) -> c13(FILTER(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_tail(z0), x1)) -> c13(FILTER(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_filter(cons_if(z0, z1, z2), x1)) -> c13(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_filter(cons_filter(z0, z1), x1)) -> c13(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(cons_divides(z0, z1), x1)) -> c13(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_filter(x0, primes)) -> c13(FILTER(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_filter(x0, 0)) -> c13(FILTER(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_filter(x0, true)) -> c13(FILTER(encArg(x0), true), ENCARG(x0)) ENCARG(cons_filter(x0, false)) -> c13(FILTER(encArg(x0), false), ENCARG(x0)) ENCARG(cons_filter(primes, x1)) -> c13(FILTER(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(0, x1)) -> c13(FILTER(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(true, x1)) -> c13(FILTER(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_filter(false, x1)) -> c13(FILTER(false, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(x0, cons_active(z0))) -> c14(DIVIDES(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_divides(x0, cons_mark(z0))) -> c14(DIVIDES(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_divides(x0, cons_sieve(z0))) -> c14(DIVIDES(encArg(x0), sieve(encArg(z0))), ENCARG(x0), ENCARG(cons_sieve(z0))) ENCARG(cons_divides(x0, cons_from(z0))) -> c14(DIVIDES(encArg(x0), from(encArg(z0))), ENCARG(x0), ENCARG(cons_from(z0))) ENCARG(cons_divides(x0, cons_s(z0))) -> c14(DIVIDES(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_divides(x0, cons_cons(z0, z1))) -> c14(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_divides(x0, cons_head(z0))) -> c14(DIVIDES(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_divides(x0, cons_tail(z0))) -> c14(DIVIDES(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_divides(x0, cons_if(z0, z1, z2))) -> c14(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_if(z0, z1, z2))) ENCARG(cons_divides(x0, cons_filter(z0, z1))) -> c14(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_filter(z0, z1))) ENCARG(cons_divides(x0, cons_divides(z0, z1))) -> c14(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_divides(z0, z1))) ENCARG(cons_divides(cons_active(z0), x1)) -> c14(DIVIDES(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_mark(z0), x1)) -> c14(DIVIDES(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_sieve(z0), x1)) -> c14(DIVIDES(sieve(encArg(z0)), encArg(x1)), ENCARG(cons_sieve(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_from(z0), x1)) -> c14(DIVIDES(from(encArg(z0)), encArg(x1)), ENCARG(cons_from(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_s(z0), x1)) -> c14(DIVIDES(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_cons(z0, z1), x1)) -> c14(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_head(z0), x1)) -> c14(DIVIDES(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_tail(z0), x1)) -> c14(DIVIDES(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_divides(cons_if(z0, z1, z2), x1)) -> c14(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_if(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_divides(cons_filter(z0, z1), x1)) -> c14(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_filter(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(cons_divides(z0, z1), x1)) -> c14(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_divides(z0, z1)), ENCARG(x1)) ENCARG(cons_divides(x0, primes)) -> c14(DIVIDES(encArg(x0), primes), ENCARG(x0)) ENCARG(cons_divides(x0, 0)) -> c14(DIVIDES(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_divides(x0, true)) -> c14(DIVIDES(encArg(x0), true), ENCARG(x0)) ENCARG(cons_divides(x0, false)) -> c14(DIVIDES(encArg(x0), false), ENCARG(x0)) ENCARG(cons_divides(primes, x1)) -> c14(DIVIDES(primes, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(0, x1)) -> c14(DIVIDES(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(true, x1)) -> c14(DIVIDES(true, encArg(x1)), ENCARG(x1)) ENCARG(cons_divides(false, x1)) -> c14(DIVIDES(false, encArg(x1)), ENCARG(x1)) MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) ENCODE_ACTIVE(cons_active(z0)) -> c(ACTIVE(active(encArg(z0)))) ENCODE_ACTIVE(cons_mark(z0)) -> c(ACTIVE(mark(encArg(z0)))) ENCODE_ACTIVE(cons_sieve(z0)) -> c(ACTIVE(sieve(encArg(z0)))) ENCODE_ACTIVE(cons_from(z0)) -> c(ACTIVE(from(encArg(z0)))) ENCODE_ACTIVE(cons_s(z0)) -> c(ACTIVE(s(encArg(z0)))) ENCODE_ACTIVE(cons_cons(z0, z1)) -> c(ACTIVE(cons(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_head(z0)) -> c(ACTIVE(head(encArg(z0)))) ENCODE_ACTIVE(cons_tail(z0)) -> c(ACTIVE(tail(encArg(z0)))) ENCODE_ACTIVE(cons_if(z0, z1, z2)) -> c(ACTIVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_ACTIVE(cons_filter(z0, z1)) -> c(ACTIVE(filter(encArg(z0), encArg(z1)))) ENCODE_ACTIVE(cons_divides(z0, z1)) -> c(ACTIVE(divides(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_active(z0)) -> c(MARK(active(encArg(z0)))) ENCODE_MARK(cons_mark(z0)) -> c(MARK(mark(encArg(z0)))) ENCODE_MARK(cons_sieve(z0)) -> c(MARK(sieve(encArg(z0)))) ENCODE_MARK(cons_from(z0)) -> c(MARK(from(encArg(z0)))) ENCODE_MARK(cons_s(z0)) -> c(MARK(s(encArg(z0)))) ENCODE_MARK(cons_cons(z0, z1)) -> c(MARK(cons(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_head(z0)) -> c(MARK(head(encArg(z0)))) ENCODE_MARK(cons_tail(z0)) -> c(MARK(tail(encArg(z0)))) ENCODE_MARK(cons_if(z0, z1, z2)) -> c(MARK(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_MARK(cons_filter(z0, z1)) -> c(MARK(filter(encArg(z0), encArg(z1)))) ENCODE_MARK(cons_divides(z0, z1)) -> c(MARK(divides(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_active(z0)) -> c(SIEVE(active(encArg(z0)))) ENCODE_SIEVE(cons_mark(z0)) -> c(SIEVE(mark(encArg(z0)))) ENCODE_SIEVE(cons_sieve(z0)) -> c(SIEVE(sieve(encArg(z0)))) ENCODE_SIEVE(cons_from(z0)) -> c(SIEVE(from(encArg(z0)))) ENCODE_SIEVE(cons_s(z0)) -> c(SIEVE(s(encArg(z0)))) ENCODE_SIEVE(cons_cons(z0, z1)) -> c(SIEVE(cons(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_head(z0)) -> c(SIEVE(head(encArg(z0)))) ENCODE_SIEVE(cons_tail(z0)) -> c(SIEVE(tail(encArg(z0)))) ENCODE_SIEVE(cons_if(z0, z1, z2)) -> c(SIEVE(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_SIEVE(cons_filter(z0, z1)) -> c(SIEVE(filter(encArg(z0), encArg(z1)))) ENCODE_SIEVE(cons_divides(z0, z1)) -> c(SIEVE(divides(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_active(z0)) -> c(FROM(active(encArg(z0)))) ENCODE_FROM(cons_mark(z0)) -> c(FROM(mark(encArg(z0)))) ENCODE_FROM(cons_sieve(z0)) -> c(FROM(sieve(encArg(z0)))) ENCODE_FROM(cons_from(z0)) -> c(FROM(from(encArg(z0)))) ENCODE_FROM(cons_s(z0)) -> c(FROM(s(encArg(z0)))) ENCODE_FROM(cons_cons(z0, z1)) -> c(FROM(cons(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_head(z0)) -> c(FROM(head(encArg(z0)))) ENCODE_FROM(cons_tail(z0)) -> c(FROM(tail(encArg(z0)))) ENCODE_FROM(cons_if(z0, z1, z2)) -> c(FROM(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FROM(cons_filter(z0, z1)) -> c(FROM(filter(encArg(z0), encArg(z1)))) ENCODE_FROM(cons_divides(z0, z1)) -> c(FROM(divides(encArg(z0), encArg(z1)))) ENCODE_S(cons_active(z0)) -> c(S(active(encArg(z0)))) ENCODE_S(cons_mark(z0)) -> c(S(mark(encArg(z0)))) ENCODE_S(cons_sieve(z0)) -> c(S(sieve(encArg(z0)))) ENCODE_S(cons_from(z0)) -> c(S(from(encArg(z0)))) ENCODE_S(cons_s(z0)) -> c(S(s(encArg(z0)))) ENCODE_S(cons_cons(z0, z1)) -> c(S(cons(encArg(z0), encArg(z1)))) ENCODE_S(cons_head(z0)) -> c(S(head(encArg(z0)))) ENCODE_S(cons_tail(z0)) -> c(S(tail(encArg(z0)))) ENCODE_S(cons_if(z0, z1, z2)) -> c(S(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_S(cons_filter(z0, z1)) -> c(S(filter(encArg(z0), encArg(z1)))) ENCODE_S(cons_divides(z0, z1)) -> c(S(divides(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, primes) -> c(CONS(encArg(x0), primes)) ENCODE_CONS(x0, 0) -> c(CONS(encArg(x0), 0)) ENCODE_CONS(x0, true) -> c(CONS(encArg(x0), true)) ENCODE_CONS(x0, false) -> c(CONS(encArg(x0), false)) ENCODE_CONS(x0, cons_active(z0)) -> c(CONS(encArg(x0), active(encArg(z0)))) ENCODE_CONS(x0, cons_mark(z0)) -> c(CONS(encArg(x0), mark(encArg(z0)))) ENCODE_CONS(x0, cons_sieve(z0)) -> c(CONS(encArg(x0), sieve(encArg(z0)))) ENCODE_CONS(x0, cons_from(z0)) -> c(CONS(encArg(x0), from(encArg(z0)))) ENCODE_CONS(x0, cons_s(z0)) -> c(CONS(encArg(x0), s(encArg(z0)))) ENCODE_CONS(x0, cons_cons(z0, z1)) -> c(CONS(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_head(z0)) -> c(CONS(encArg(x0), head(encArg(z0)))) ENCODE_CONS(x0, cons_tail(z0)) -> c(CONS(encArg(x0), tail(encArg(z0)))) ENCODE_CONS(x0, cons_if(z0, z1, z2)) -> c(CONS(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_CONS(x0, cons_filter(z0, z1)) -> c(CONS(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_CONS(x0, cons_divides(z0, z1)) -> c(CONS(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_CONS(primes, x1) -> c(CONS(primes, encArg(x1))) ENCODE_CONS(0, x1) -> c(CONS(0, encArg(x1))) ENCODE_CONS(true, x1) -> c(CONS(true, encArg(x1))) ENCODE_CONS(false, x1) -> c(CONS(false, encArg(x1))) ENCODE_CONS(cons_active(z0), x1) -> c(CONS(active(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_mark(z0), x1) -> c(CONS(mark(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_sieve(z0), x1) -> c(CONS(sieve(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_from(z0), x1) -> c(CONS(from(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_s(z0), x1) -> c(CONS(s(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_cons(z0, z1), x1) -> c(CONS(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_head(z0), x1) -> c(CONS(head(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_tail(z0), x1) -> c(CONS(tail(encArg(z0)), encArg(x1))) ENCODE_CONS(cons_if(z0, z1, z2), x1) -> c(CONS(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_CONS(cons_filter(z0, z1), x1) -> c(CONS(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_CONS(cons_divides(z0, z1), x1) -> c(CONS(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_HEAD(cons_active(z0)) -> c(HEAD(active(encArg(z0)))) ENCODE_HEAD(cons_mark(z0)) -> c(HEAD(mark(encArg(z0)))) ENCODE_HEAD(cons_sieve(z0)) -> c(HEAD(sieve(encArg(z0)))) ENCODE_HEAD(cons_from(z0)) -> c(HEAD(from(encArg(z0)))) ENCODE_HEAD(cons_s(z0)) -> c(HEAD(s(encArg(z0)))) ENCODE_HEAD(cons_cons(z0, z1)) -> c(HEAD(cons(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_head(z0)) -> c(HEAD(head(encArg(z0)))) ENCODE_HEAD(cons_tail(z0)) -> c(HEAD(tail(encArg(z0)))) ENCODE_HEAD(cons_if(z0, z1, z2)) -> c(HEAD(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_HEAD(cons_filter(z0, z1)) -> c(HEAD(filter(encArg(z0), encArg(z1)))) ENCODE_HEAD(cons_divides(z0, z1)) -> c(HEAD(divides(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_active(z0)) -> c(TAIL(active(encArg(z0)))) ENCODE_TAIL(cons_mark(z0)) -> c(TAIL(mark(encArg(z0)))) ENCODE_TAIL(cons_sieve(z0)) -> c(TAIL(sieve(encArg(z0)))) ENCODE_TAIL(cons_from(z0)) -> c(TAIL(from(encArg(z0)))) ENCODE_TAIL(cons_s(z0)) -> c(TAIL(s(encArg(z0)))) ENCODE_TAIL(cons_cons(z0, z1)) -> c(TAIL(cons(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_head(z0)) -> c(TAIL(head(encArg(z0)))) ENCODE_TAIL(cons_tail(z0)) -> c(TAIL(tail(encArg(z0)))) ENCODE_TAIL(cons_if(z0, z1, z2)) -> c(TAIL(if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_TAIL(cons_filter(z0, z1)) -> c(TAIL(filter(encArg(z0), encArg(z1)))) ENCODE_TAIL(cons_divides(z0, z1)) -> c(TAIL(divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, primes) -> c(IF(encArg(x0), encArg(x1), primes)) ENCODE_IF(x0, x1, 0) -> c(IF(encArg(x0), encArg(x1), 0)) ENCODE_IF(x0, x1, true) -> c(IF(encArg(x0), encArg(x1), true)) ENCODE_IF(x0, x1, false) -> c(IF(encArg(x0), encArg(x1), false)) ENCODE_IF(x0, x1, cons_active(z0)) -> c(IF(encArg(x0), encArg(x1), active(encArg(z0)))) ENCODE_IF(x0, x1, cons_mark(z0)) -> c(IF(encArg(x0), encArg(x1), mark(encArg(z0)))) ENCODE_IF(x0, x1, cons_sieve(z0)) -> c(IF(encArg(x0), encArg(x1), sieve(encArg(z0)))) ENCODE_IF(x0, x1, cons_from(z0)) -> c(IF(encArg(x0), encArg(x1), from(encArg(z0)))) ENCODE_IF(x0, x1, cons_s(z0)) -> c(IF(encArg(x0), encArg(x1), s(encArg(z0)))) ENCODE_IF(x0, x1, cons_cons(z0, z1)) -> c(IF(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_head(z0)) -> c(IF(encArg(x0), encArg(x1), head(encArg(z0)))) ENCODE_IF(x0, x1, cons_tail(z0)) -> c(IF(encArg(x0), encArg(x1), tail(encArg(z0)))) ENCODE_IF(x0, x1, cons_if(z0, z1, z2)) -> c(IF(encArg(x0), encArg(x1), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_IF(x0, x1, cons_filter(z0, z1)) -> c(IF(encArg(x0), encArg(x1), filter(encArg(z0), encArg(z1)))) ENCODE_IF(x0, x1, cons_divides(z0, z1)) -> c(IF(encArg(x0), encArg(x1), divides(encArg(z0), encArg(z1)))) ENCODE_IF(x0, primes, x2) -> c(IF(encArg(x0), primes, encArg(x2))) ENCODE_IF(x0, 0, x2) -> c(IF(encArg(x0), 0, encArg(x2))) ENCODE_IF(x0, true, x2) -> c(IF(encArg(x0), true, encArg(x2))) ENCODE_IF(x0, false, x2) -> c(IF(encArg(x0), false, encArg(x2))) ENCODE_IF(x0, cons_active(z0), x2) -> c(IF(encArg(x0), active(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_mark(z0), x2) -> c(IF(encArg(x0), mark(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_sieve(z0), x2) -> c(IF(encArg(x0), sieve(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_from(z0), x2) -> c(IF(encArg(x0), from(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_s(z0), x2) -> c(IF(encArg(x0), s(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_cons(z0, z1), x2) -> c(IF(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_head(z0), x2) -> c(IF(encArg(x0), head(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_tail(z0), x2) -> c(IF(encArg(x0), tail(encArg(z0)), encArg(x2))) ENCODE_IF(x0, cons_if(z0, z1, z2), x2) -> c(IF(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_IF(x0, cons_filter(z0, z1), x2) -> c(IF(encArg(x0), filter(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(x0, cons_divides(z0, z1), x2) -> c(IF(encArg(x0), divides(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_IF(primes, x1, x2) -> c(IF(primes, encArg(x1), encArg(x2))) ENCODE_IF(0, x1, x2) -> c(IF(0, encArg(x1), encArg(x2))) ENCODE_IF(true, x1, x2) -> c(IF(true, encArg(x1), encArg(x2))) ENCODE_IF(false, x1, x2) -> c(IF(false, encArg(x1), encArg(x2))) ENCODE_IF(cons_active(z0), x1, x2) -> c(IF(active(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_mark(z0), x1, x2) -> c(IF(mark(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_sieve(z0), x1, x2) -> c(IF(sieve(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_from(z0), x1, x2) -> c(IF(from(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_s(z0), x1, x2) -> c(IF(s(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_cons(z0, z1), x1, x2) -> c(IF(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_head(z0), x1, x2) -> c(IF(head(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_tail(z0), x1, x2) -> c(IF(tail(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_IF(cons_if(z0, z1, z2), x1, x2) -> c(IF(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_IF(cons_filter(z0, z1), x1, x2) -> c(IF(filter(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_IF(cons_divides(z0, z1), x1, x2) -> c(IF(divides(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_FILTER(x0, primes) -> c(FILTER(encArg(x0), primes)) ENCODE_FILTER(x0, 0) -> c(FILTER(encArg(x0), 0)) ENCODE_FILTER(x0, true) -> c(FILTER(encArg(x0), true)) ENCODE_FILTER(x0, false) -> c(FILTER(encArg(x0), false)) ENCODE_FILTER(x0, cons_active(z0)) -> c(FILTER(encArg(x0), active(encArg(z0)))) ENCODE_FILTER(x0, cons_mark(z0)) -> c(FILTER(encArg(x0), mark(encArg(z0)))) ENCODE_FILTER(x0, cons_sieve(z0)) -> c(FILTER(encArg(x0), sieve(encArg(z0)))) ENCODE_FILTER(x0, cons_from(z0)) -> c(FILTER(encArg(x0), from(encArg(z0)))) ENCODE_FILTER(x0, cons_s(z0)) -> c(FILTER(encArg(x0), s(encArg(z0)))) ENCODE_FILTER(x0, cons_cons(z0, z1)) -> c(FILTER(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_head(z0)) -> c(FILTER(encArg(x0), head(encArg(z0)))) ENCODE_FILTER(x0, cons_tail(z0)) -> c(FILTER(encArg(x0), tail(encArg(z0)))) ENCODE_FILTER(x0, cons_if(z0, z1, z2)) -> c(FILTER(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_FILTER(x0, cons_filter(z0, z1)) -> c(FILTER(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_FILTER(x0, cons_divides(z0, z1)) -> c(FILTER(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_FILTER(primes, x1) -> c(FILTER(primes, encArg(x1))) ENCODE_FILTER(0, x1) -> c(FILTER(0, encArg(x1))) ENCODE_FILTER(true, x1) -> c(FILTER(true, encArg(x1))) ENCODE_FILTER(false, x1) -> c(FILTER(false, encArg(x1))) ENCODE_FILTER(cons_active(z0), x1) -> c(FILTER(active(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_mark(z0), x1) -> c(FILTER(mark(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_sieve(z0), x1) -> c(FILTER(sieve(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_from(z0), x1) -> c(FILTER(from(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_s(z0), x1) -> c(FILTER(s(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_cons(z0, z1), x1) -> c(FILTER(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_head(z0), x1) -> c(FILTER(head(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_tail(z0), x1) -> c(FILTER(tail(encArg(z0)), encArg(x1))) ENCODE_FILTER(cons_if(z0, z1, z2), x1) -> c(FILTER(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_FILTER(cons_filter(z0, z1), x1) -> c(FILTER(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_FILTER(cons_divides(z0, z1), x1) -> c(FILTER(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(x0, primes) -> c(DIVIDES(encArg(x0), primes)) ENCODE_DIVIDES(x0, 0) -> c(DIVIDES(encArg(x0), 0)) ENCODE_DIVIDES(x0, true) -> c(DIVIDES(encArg(x0), true)) ENCODE_DIVIDES(x0, false) -> c(DIVIDES(encArg(x0), false)) ENCODE_DIVIDES(x0, cons_active(z0)) -> c(DIVIDES(encArg(x0), active(encArg(z0)))) ENCODE_DIVIDES(x0, cons_mark(z0)) -> c(DIVIDES(encArg(x0), mark(encArg(z0)))) ENCODE_DIVIDES(x0, cons_sieve(z0)) -> c(DIVIDES(encArg(x0), sieve(encArg(z0)))) ENCODE_DIVIDES(x0, cons_from(z0)) -> c(DIVIDES(encArg(x0), from(encArg(z0)))) ENCODE_DIVIDES(x0, cons_s(z0)) -> c(DIVIDES(encArg(x0), s(encArg(z0)))) ENCODE_DIVIDES(x0, cons_cons(z0, z1)) -> c(DIVIDES(encArg(x0), cons(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_head(z0)) -> c(DIVIDES(encArg(x0), head(encArg(z0)))) ENCODE_DIVIDES(x0, cons_tail(z0)) -> c(DIVIDES(encArg(x0), tail(encArg(z0)))) ENCODE_DIVIDES(x0, cons_if(z0, z1, z2)) -> c(DIVIDES(encArg(x0), if(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_DIVIDES(x0, cons_filter(z0, z1)) -> c(DIVIDES(encArg(x0), filter(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(x0, cons_divides(z0, z1)) -> c(DIVIDES(encArg(x0), divides(encArg(z0), encArg(z1)))) ENCODE_DIVIDES(primes, x1) -> c(DIVIDES(primes, encArg(x1))) ENCODE_DIVIDES(0, x1) -> c(DIVIDES(0, encArg(x1))) ENCODE_DIVIDES(true, x1) -> c(DIVIDES(true, encArg(x1))) ENCODE_DIVIDES(false, x1) -> c(DIVIDES(false, encArg(x1))) ENCODE_DIVIDES(cons_active(z0), x1) -> c(DIVIDES(active(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_mark(z0), x1) -> c(DIVIDES(mark(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_sieve(z0), x1) -> c(DIVIDES(sieve(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_from(z0), x1) -> c(DIVIDES(from(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_s(z0), x1) -> c(DIVIDES(s(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_cons(z0, z1), x1) -> c(DIVIDES(cons(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_head(z0), x1) -> c(DIVIDES(head(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_tail(z0), x1) -> c(DIVIDES(tail(encArg(z0)), encArg(x1))) ENCODE_DIVIDES(cons_if(z0, z1, z2), x1) -> c(DIVIDES(if(encArg(z0), encArg(z1), encArg(z2)), encArg(x1))) ENCODE_DIVIDES(cons_filter(z0, z1), x1) -> c(DIVIDES(filter(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_DIVIDES(cons_divides(z0, z1), x1) -> c(DIVIDES(divides(encArg(z0), encArg(z1)), encArg(x1))) ENCARG(cons_active(cons_active(cons_active(z0)))) -> c4(ACTIVE(active(active(encArg(z0)))), ENCARG(cons_active(cons_active(z0)))) ENCARG(cons_active(cons_active(cons_mark(z0)))) -> c4(ACTIVE(active(mark(encArg(z0)))), ENCARG(cons_active(cons_mark(z0)))) ENCARG(cons_active(cons_active(cons_sieve(z0)))) -> c4(ACTIVE(active(sieve(encArg(z0)))), ENCARG(cons_active(cons_sieve(z0)))) ENCARG(cons_active(cons_active(cons_from(z0)))) -> c4(ACTIVE(active(from(encArg(z0)))), ENCARG(cons_active(cons_from(z0)))) ENCARG(cons_active(cons_active(cons_s(z0)))) -> c4(ACTIVE(active(s(encArg(z0)))), ENCARG(cons_active(cons_s(z0)))) ENCARG(cons_active(cons_active(cons_cons(z0, z1)))) -> c4(ACTIVE(active(cons(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_cons(z0, z1)))) ENCARG(cons_active(cons_active(cons_head(z0)))) -> c4(ACTIVE(active(head(encArg(z0)))), ENCARG(cons_active(cons_head(z0)))) ENCARG(cons_active(cons_active(cons_tail(z0)))) -> c4(ACTIVE(active(tail(encArg(z0)))), ENCARG(cons_active(cons_tail(z0)))) ENCARG(cons_active(cons_active(cons_if(z0, z1, z2)))) -> c4(ACTIVE(active(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_active(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_active(cons_filter(z0, z1)))) -> c4(ACTIVE(active(filter(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_filter(z0, z1)))) ENCARG(cons_active(cons_active(cons_divides(z0, z1)))) -> c4(ACTIVE(active(divides(encArg(z0), encArg(z1)))), ENCARG(cons_active(cons_divides(z0, z1)))) ENCARG(cons_active(cons_active(primes))) -> c1(ACTIVE(active(primes))) ENCARG(cons_active(cons_active(primes))) -> c1(ENCARG(cons_active(primes))) ENCARG(cons_active(cons_mark(cons_active(z0)))) -> c4(ACTIVE(mark(active(encArg(z0)))), ENCARG(cons_mark(cons_active(z0)))) ENCARG(cons_active(cons_mark(cons_mark(z0)))) -> c4(ACTIVE(mark(mark(encArg(z0)))), ENCARG(cons_mark(cons_mark(z0)))) ENCARG(cons_active(cons_mark(cons_sieve(z0)))) -> c4(ACTIVE(mark(sieve(encArg(z0)))), ENCARG(cons_mark(cons_sieve(z0)))) ENCARG(cons_active(cons_mark(cons_from(z0)))) -> c4(ACTIVE(mark(from(encArg(z0)))), ENCARG(cons_mark(cons_from(z0)))) ENCARG(cons_active(cons_mark(cons_s(z0)))) -> c4(ACTIVE(mark(s(encArg(z0)))), ENCARG(cons_mark(cons_s(z0)))) ENCARG(cons_active(cons_mark(cons_cons(z0, z1)))) -> c4(ACTIVE(mark(cons(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_cons(z0, z1)))) ENCARG(cons_active(cons_mark(cons_head(z0)))) -> c4(ACTIVE(mark(head(encArg(z0)))), ENCARG(cons_mark(cons_head(z0)))) ENCARG(cons_active(cons_mark(cons_tail(z0)))) -> c4(ACTIVE(mark(tail(encArg(z0)))), ENCARG(cons_mark(cons_tail(z0)))) ENCARG(cons_active(cons_mark(cons_if(z0, z1, z2)))) -> c4(ACTIVE(mark(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_mark(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_mark(cons_filter(z0, z1)))) -> c4(ACTIVE(mark(filter(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_filter(z0, z1)))) ENCARG(cons_active(cons_mark(cons_divides(z0, z1)))) -> c4(ACTIVE(mark(divides(encArg(z0), encArg(z1)))), ENCARG(cons_mark(cons_divides(z0, z1)))) ENCARG(cons_active(cons_mark(primes))) -> c2(ACTIVE(mark(primes))) ENCARG(cons_active(cons_mark(primes))) -> c2(ENCARG(cons_mark(primes))) ENCARG(cons_active(cons_mark(0))) -> c2(ACTIVE(mark(0))) ENCARG(cons_active(cons_mark(0))) -> c2(ENCARG(cons_mark(0))) ENCARG(cons_active(cons_mark(true))) -> c2(ACTIVE(mark(true))) ENCARG(cons_active(cons_mark(true))) -> c2(ENCARG(cons_mark(true))) ENCARG(cons_active(cons_mark(false))) -> c2(ACTIVE(mark(false))) ENCARG(cons_active(cons_mark(false))) -> c2(ENCARG(cons_mark(false))) ENCARG(cons_active(cons_sieve(cons_active(z0)))) -> c4(ACTIVE(sieve(active(encArg(z0)))), ENCARG(cons_sieve(cons_active(z0)))) ENCARG(cons_active(cons_sieve(cons_mark(z0)))) -> c4(ACTIVE(sieve(mark(encArg(z0)))), ENCARG(cons_sieve(cons_mark(z0)))) ENCARG(cons_active(cons_sieve(cons_sieve(z0)))) -> c4(ACTIVE(sieve(sieve(encArg(z0)))), ENCARG(cons_sieve(cons_sieve(z0)))) ENCARG(cons_active(cons_sieve(cons_from(z0)))) -> c4(ACTIVE(sieve(from(encArg(z0)))), ENCARG(cons_sieve(cons_from(z0)))) ENCARG(cons_active(cons_sieve(cons_s(z0)))) -> c4(ACTIVE(sieve(s(encArg(z0)))), ENCARG(cons_sieve(cons_s(z0)))) ENCARG(cons_active(cons_sieve(cons_cons(z0, z1)))) -> c4(ACTIVE(sieve(cons(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_cons(z0, z1)))) ENCARG(cons_active(cons_sieve(cons_head(z0)))) -> c4(ACTIVE(sieve(head(encArg(z0)))), ENCARG(cons_sieve(cons_head(z0)))) ENCARG(cons_active(cons_sieve(cons_tail(z0)))) -> c4(ACTIVE(sieve(tail(encArg(z0)))), ENCARG(cons_sieve(cons_tail(z0)))) ENCARG(cons_active(cons_sieve(cons_if(z0, z1, z2)))) -> c4(ACTIVE(sieve(if(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_sieve(cons_if(z0, z1, z2)))) ENCARG(cons_active(cons_sieve(cons_filter(z0, z1)))) -> c4(ACTIVE(sieve(filter(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_filter(z0, z1)))) ENCARG(cons_active(cons_sieve(cons_divides(z0, z1)))) -> c4(ACTIVE(sieve(divides(encArg(z0), encArg(z1)))), ENCARG(cons_sieve(cons_divides(z0, z1)))) S tuples: ACTIVE(head(cons(z0, z1))) -> c32(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c33(MARK(z1)) ACTIVE(if(true, z0, z1)) -> c34(MARK(z0)) ACTIVE(if(false, z0, z1)) -> c35(MARK(z1)) MARK(primes) -> c38(ACTIVE(primes)) SIEVE(mark(z0)) -> c51(SIEVE(z0)) SIEVE(active(z0)) -> c52(SIEVE(z0)) FROM(mark(z0)) -> c53(FROM(z0)) FROM(active(z0)) -> c54(FROM(z0)) S(mark(z0)) -> c55(S(z0)) S(active(z0)) -> c56(S(z0)) CONS(mark(z0), z1) -> c57(CONS(z0, z1)) CONS(z0, mark(z1)) -> c58(CONS(z0, z1)) CONS(active(z0), z1) -> c59(CONS(z0, z1)) CONS(z0, active(z1)) -> c60(CONS(z0, z1)) HEAD(mark(z0)) -> c61(HEAD(z0)) HEAD(active(z0)) -> c62(HEAD(z0)) TAIL(mark(z0)) -> c63(TAIL(z0)) TAIL(active(z0)) -> c64(TAIL(z0)) IF(mark(z0), z1, z2) -> c65(IF(z0, z1, z2)) IF(z0, mark(z1), z2) -> c66(IF(z0, z1, z2)) IF(z0, z1, mark(z2)) -> c67(IF(z0, z1, z2)) IF(active(z0), z1, z2) -> c68(IF(z0, z1, z2)) IF(z0, active(z1), z2) -> c69(IF(z0, z1, z2)) IF(z0, z1, active(z2)) -> c70(IF(z0, z1, z2)) FILTER(mark(z0), z1) -> c71(FILTER(z0, z1)) FILTER(z0, mark(z1)) -> c72(FILTER(z0, z1)) FILTER(active(z0), z1) -> c73(FILTER(z0, z1)) FILTER(z0, active(z1)) -> c74(FILTER(z0, z1)) DIVIDES(mark(z0), z1) -> c75(DIVIDES(z0, z1)) DIVIDES(z0, mark(z1)) -> c76(DIVIDES(z0, z1)) DIVIDES(active(z0), z1) -> c77(DIVIDES(z0, z1)) DIVIDES(z0, active(z1)) -> c78(DIVIDES(z0, z1)) ACTIVE(primes) -> c30(MARK(sieve(from(s(s(0)))))) ACTIVE(from(z0)) -> c31(MARK(cons(z0, from(s(z0)))), S(z0)) ACTIVE(filter(s(s(z0)), cons(z1, z2))) -> c36(MARK(if(divides(s(s(z0)), z1), filter(s(s(z0)), z2), cons(z1, filter(z0, sieve(z1))))), DIVIDES(s(s(z0)), z1), S(z0), FILTER(s(s(z0)), z2), S(z0), FILTER(z0, sieve(z1)), SIEVE(z1)) ACTIVE(sieve(cons(z0, z1))) -> c37(MARK(cons(z0, filter(z0, sieve(z1)))), FILTER(z0, sieve(z1)), SIEVE(z1)) MARK(0) -> c42 MARK(true) -> c47 MARK(false) -> c48 MARK(sieve(z0)) -> c39(ACTIVE(sieve(z0)), SIEVE(mark(z0)), MARK(z0)) MARK(sieve(primes)) -> c39(ACTIVE(sieve(active(primes))), SIEVE(mark(primes)), MARK(primes)) MARK(sieve(sieve(z0))) -> c39(ACTIVE(sieve(active(sieve(mark(z0))))), SIEVE(mark(sieve(z0))), MARK(sieve(z0))) MARK(sieve(from(z0))) -> c39(ACTIVE(sieve(active(from(mark(z0))))), SIEVE(mark(from(z0))), MARK(from(z0))) MARK(sieve(s(z0))) -> c39(ACTIVE(sieve(active(s(mark(z0))))), SIEVE(mark(s(z0))), MARK(s(z0))) MARK(sieve(0)) -> c39(ACTIVE(sieve(active(0))), SIEVE(mark(0)), MARK(0)) MARK(sieve(cons(z0, z1))) -> c39(ACTIVE(sieve(active(cons(mark(z0), z1)))), SIEVE(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(sieve(head(z0))) -> c39(ACTIVE(sieve(active(head(mark(z0))))), SIEVE(mark(head(z0))), MARK(head(z0))) MARK(sieve(tail(z0))) -> c39(ACTIVE(sieve(active(tail(mark(z0))))), SIEVE(mark(tail(z0))), MARK(tail(z0))) MARK(sieve(if(z0, z1, z2))) -> c39(ACTIVE(sieve(active(if(mark(z0), z1, z2)))), SIEVE(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(sieve(true)) -> c39(ACTIVE(sieve(active(true))), SIEVE(mark(true)), MARK(true)) MARK(sieve(false)) -> c39(ACTIVE(sieve(active(false))), SIEVE(mark(false)), MARK(false)) MARK(sieve(filter(z0, z1))) -> c39(ACTIVE(sieve(active(filter(mark(z0), mark(z1))))), SIEVE(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(sieve(divides(z0, z1))) -> c39(ACTIVE(sieve(active(divides(mark(z0), mark(z1))))), SIEVE(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(from(z0)) -> c40(ACTIVE(from(z0)), FROM(mark(z0)), MARK(z0)) MARK(from(primes)) -> c40(ACTIVE(from(active(primes))), FROM(mark(primes)), MARK(primes)) MARK(from(sieve(z0))) -> c40(ACTIVE(from(active(sieve(mark(z0))))), FROM(mark(sieve(z0))), MARK(sieve(z0))) MARK(from(from(z0))) -> c40(ACTIVE(from(active(from(mark(z0))))), FROM(mark(from(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c40(ACTIVE(from(active(s(mark(z0))))), FROM(mark(s(z0))), MARK(s(z0))) MARK(from(0)) -> c40(ACTIVE(from(active(0))), FROM(mark(0)), MARK(0)) MARK(from(cons(z0, z1))) -> c40(ACTIVE(from(active(cons(mark(z0), z1)))), FROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(from(head(z0))) -> c40(ACTIVE(from(active(head(mark(z0))))), FROM(mark(head(z0))), MARK(head(z0))) MARK(from(tail(z0))) -> c40(ACTIVE(from(active(tail(mark(z0))))), FROM(mark(tail(z0))), MARK(tail(z0))) MARK(from(if(z0, z1, z2))) -> c40(ACTIVE(from(active(if(mark(z0), z1, z2)))), FROM(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(from(true)) -> c40(ACTIVE(from(active(true))), FROM(mark(true)), MARK(true)) MARK(from(false)) -> c40(ACTIVE(from(active(false))), FROM(mark(false)), MARK(false)) MARK(from(filter(z0, z1))) -> c40(ACTIVE(from(active(filter(mark(z0), mark(z1))))), FROM(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(from(divides(z0, z1))) -> c40(ACTIVE(from(active(divides(mark(z0), mark(z1))))), FROM(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(primes)) -> c41(ACTIVE(s(active(primes))), S(mark(primes)), MARK(primes)) MARK(s(sieve(z0))) -> c41(ACTIVE(s(active(sieve(mark(z0))))), S(mark(sieve(z0))), MARK(sieve(z0))) MARK(s(from(z0))) -> c41(ACTIVE(s(active(from(mark(z0))))), S(mark(from(z0))), MARK(from(z0))) MARK(s(s(z0))) -> c41(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(0)) -> c41(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(cons(z0, z1))) -> c41(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(head(z0))) -> c41(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c41(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(if(z0, z1, z2))) -> c41(ACTIVE(s(active(if(mark(z0), z1, z2)))), S(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(s(true)) -> c41(ACTIVE(s(active(true))), S(mark(true)), MARK(true)) MARK(s(false)) -> c41(ACTIVE(s(active(false))), S(mark(false)), MARK(false)) MARK(s(filter(z0, z1))) -> c41(ACTIVE(s(active(filter(mark(z0), mark(z1))))), S(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(s(divides(z0, z1))) -> c41(ACTIVE(s(active(divides(mark(z0), mark(z1))))), S(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(s(z0)) -> c41(S(mark(z0)), MARK(z0)) MARK(cons(primes, x1)) -> c43(ACTIVE(cons(active(primes), x1)), CONS(mark(primes), x1), MARK(primes)) MARK(cons(sieve(z0), x1)) -> c43(ACTIVE(cons(active(sieve(mark(z0))), x1)), CONS(mark(sieve(z0)), x1), MARK(sieve(z0))) MARK(cons(from(z0), x1)) -> c43(ACTIVE(cons(active(from(mark(z0))), x1)), CONS(mark(from(z0)), x1), MARK(from(z0))) MARK(cons(s(z0), x1)) -> c43(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(0, x1)) -> c43(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(cons(z0, z1), x1)) -> c43(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(head(z0), x1)) -> c43(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c43(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(if(z0, z1, z2), x1)) -> c43(ACTIVE(cons(active(if(mark(z0), z1, z2)), x1)), CONS(mark(if(z0, z1, z2)), x1), MARK(if(z0, z1, z2))) MARK(cons(true, x1)) -> c43(ACTIVE(cons(active(true), x1)), CONS(mark(true), x1), MARK(true)) MARK(cons(false, x1)) -> c43(ACTIVE(cons(active(false), x1)), CONS(mark(false), x1), MARK(false)) MARK(cons(filter(z0, z1), x1)) -> c43(ACTIVE(cons(active(filter(mark(z0), mark(z1))), x1)), CONS(mark(filter(z0, z1)), x1), MARK(filter(z0, z1))) MARK(cons(divides(z0, z1), x1)) -> c43(ACTIVE(cons(active(divides(mark(z0), mark(z1))), x1)), CONS(mark(divides(z0, z1)), x1), MARK(divides(z0, z1))) MARK(cons(x0, x1)) -> c43(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c43(CONS(mark(z0), z1), MARK(z0)) MARK(head(z0)) -> c44(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(primes)) -> c44(ACTIVE(head(active(primes))), HEAD(mark(primes)), MARK(primes)) MARK(head(sieve(z0))) -> c44(ACTIVE(head(active(sieve(mark(z0))))), HEAD(mark(sieve(z0))), MARK(sieve(z0))) MARK(head(from(z0))) -> c44(ACTIVE(head(active(from(mark(z0))))), HEAD(mark(from(z0))), MARK(from(z0))) MARK(head(s(z0))) -> c44(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(0)) -> c44(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(cons(z0, z1))) -> c44(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(head(z0))) -> c44(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c44(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(if(z0, z1, z2))) -> c44(ACTIVE(head(active(if(mark(z0), z1, z2)))), HEAD(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(head(true)) -> c44(ACTIVE(head(active(true))), HEAD(mark(true)), MARK(true)) MARK(head(false)) -> c44(ACTIVE(head(active(false))), HEAD(mark(false)), MARK(false)) MARK(head(filter(z0, z1))) -> c44(ACTIVE(head(active(filter(mark(z0), mark(z1))))), HEAD(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(head(divides(z0, z1))) -> c44(ACTIVE(head(active(divides(mark(z0), mark(z1))))), HEAD(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(tail(z0)) -> c45(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(primes)) -> c45(ACTIVE(tail(active(primes))), TAIL(mark(primes)), MARK(primes)) MARK(tail(sieve(z0))) -> c45(ACTIVE(tail(active(sieve(mark(z0))))), TAIL(mark(sieve(z0))), MARK(sieve(z0))) MARK(tail(from(z0))) -> c45(ACTIVE(tail(active(from(mark(z0))))), TAIL(mark(from(z0))), MARK(from(z0))) MARK(tail(s(z0))) -> c45(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(0)) -> c45(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(cons(z0, z1))) -> c45(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(head(z0))) -> c45(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c45(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(if(z0, z1, z2))) -> c45(ACTIVE(tail(active(if(mark(z0), z1, z2)))), TAIL(mark(if(z0, z1, z2))), MARK(if(z0, z1, z2))) MARK(tail(true)) -> c45(ACTIVE(tail(active(true))), TAIL(mark(true)), MARK(true)) MARK(tail(false)) -> c45(ACTIVE(tail(active(false))), TAIL(mark(false)), MARK(false)) MARK(tail(filter(z0, z1))) -> c45(ACTIVE(tail(active(filter(mark(z0), mark(z1))))), TAIL(mark(filter(z0, z1))), MARK(filter(z0, z1))) MARK(tail(divides(z0, z1))) -> c45(ACTIVE(tail(active(divides(mark(z0), mark(z1))))), TAIL(mark(divides(z0, z1))), MARK(divides(z0, z1))) MARK(if(z0, z1, z2)) -> c46(ACTIVE(if(z0, z1, z2)), IF(mark(z0), z1, z2), MARK(z0)) MARK(if(primes, x1, x2)) -> c46(ACTIVE(if(active(primes), x1, x2)), IF(mark(primes), x1, x2), MARK(primes)) MARK(if(sieve(z0), x1, x2)) -> c46(ACTIVE(if(active(sieve(mark(z0))), x1, x2)), IF(mark(sieve(z0)), x1, x2), MARK(sieve(z0))) MARK(if(from(z0), x1, x2)) -> c46(ACTIVE(if(active(from(mark(z0))), x1, x2)), IF(mark(from(z0)), x1, x2), MARK(from(z0))) MARK(if(s(z0), x1, x2)) -> c46(ACTIVE(if(active(s(mark(z0))), x1, x2)), IF(mark(s(z0)), x1, x2), MARK(s(z0))) MARK(if(0, x1, x2)) -> c46(ACTIVE(if(active(0), x1, x2)), IF(mark(0), x1, x2), MARK(0)) MARK(if(cons(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(cons(mark(z0), z1)), x1, x2)), IF(mark(cons(z0, z1)), x1, x2), MARK(cons(z0, z1))) MARK(if(head(z0), x1, x2)) -> c46(ACTIVE(if(active(head(mark(z0))), x1, x2)), IF(mark(head(z0)), x1, x2), MARK(head(z0))) MARK(if(tail(z0), x1, x2)) -> c46(ACTIVE(if(active(tail(mark(z0))), x1, x2)), IF(mark(tail(z0)), x1, x2), MARK(tail(z0))) MARK(if(if(z0, z1, z2), x1, x2)) -> c46(ACTIVE(if(active(if(mark(z0), z1, z2)), x1, x2)), IF(mark(if(z0, z1, z2)), x1, x2), MARK(if(z0, z1, z2))) MARK(if(true, x1, x2)) -> c46(ACTIVE(if(active(true), x1, x2)), IF(mark(true), x1, x2), MARK(true)) MARK(if(false, x1, x2)) -> c46(ACTIVE(if(active(false), x1, x2)), IF(mark(false), x1, x2), MARK(false)) MARK(if(filter(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(filter(mark(z0), mark(z1))), x1, x2)), IF(mark(filter(z0, z1)), x1, x2), MARK(filter(z0, z1))) MARK(if(divides(z0, z1), x1, x2)) -> c46(ACTIVE(if(active(divides(mark(z0), mark(z1))), x1, x2)), IF(mark(divides(z0, z1)), x1, x2), MARK(divides(z0, z1))) MARK(if(x0, x1, x2)) -> c46(IF(mark(x0), x1, x2)) MARK(filter(z0, x1)) -> c49(ACTIVE(filter(z0, mark(x1))), FILTER(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(filter(x0, z1)) -> c49(ACTIVE(filter(mark(x0), z1)), FILTER(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(filter(x0, primes)) -> c49(ACTIVE(filter(mark(x0), active(primes))), FILTER(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(filter(x0, sieve(z0))) -> c49(ACTIVE(filter(mark(x0), active(sieve(mark(z0))))), FILTER(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(filter(x0, from(z0))) -> c49(ACTIVE(filter(mark(x0), active(from(mark(z0))))), FILTER(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(filter(x0, s(z0))) -> c49(ACTIVE(filter(mark(x0), active(s(mark(z0))))), FILTER(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(filter(x0, 0)) -> c49(ACTIVE(filter(mark(x0), active(0))), FILTER(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(filter(x0, cons(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(cons(mark(z0), z1)))), FILTER(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(filter(x0, head(z0))) -> c49(ACTIVE(filter(mark(x0), active(head(mark(z0))))), FILTER(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(filter(x0, tail(z0))) -> c49(ACTIVE(filter(mark(x0), active(tail(mark(z0))))), FILTER(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(filter(x0, if(z0, z1, z2))) -> c49(ACTIVE(filter(mark(x0), active(if(mark(z0), z1, z2)))), FILTER(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(filter(x0, true)) -> c49(ACTIVE(filter(mark(x0), active(true))), FILTER(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(filter(x0, false)) -> c49(ACTIVE(filter(mark(x0), active(false))), FILTER(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(filter(x0, filter(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(filter(mark(z0), mark(z1))))), FILTER(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(filter(x0, divides(z0, z1))) -> c49(ACTIVE(filter(mark(x0), active(divides(mark(z0), mark(z1))))), FILTER(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(filter(primes, x1)) -> c49(ACTIVE(filter(active(primes), mark(x1))), FILTER(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(filter(sieve(z0), x1)) -> c49(ACTIVE(filter(active(sieve(mark(z0))), mark(x1))), FILTER(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(filter(from(z0), x1)) -> c49(ACTIVE(filter(active(from(mark(z0))), mark(x1))), FILTER(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(filter(s(z0), x1)) -> c49(ACTIVE(filter(active(s(mark(z0))), mark(x1))), FILTER(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(filter(0, x1)) -> c49(ACTIVE(filter(active(0), mark(x1))), FILTER(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(filter(cons(z0, z1), x1)) -> c49(ACTIVE(filter(active(cons(mark(z0), z1)), mark(x1))), FILTER(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(filter(head(z0), x1)) -> c49(ACTIVE(filter(active(head(mark(z0))), mark(x1))), FILTER(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(filter(tail(z0), x1)) -> c49(ACTIVE(filter(active(tail(mark(z0))), mark(x1))), FILTER(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(filter(if(z0, z1, z2), x1)) -> c49(ACTIVE(filter(active(if(mark(z0), z1, z2)), mark(x1))), FILTER(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(filter(true, x1)) -> c49(ACTIVE(filter(active(true), mark(x1))), FILTER(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(filter(false, x1)) -> c49(ACTIVE(filter(active(false), mark(x1))), FILTER(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(filter(filter(z0, z1), x1)) -> c49(ACTIVE(filter(active(filter(mark(z0), mark(z1))), mark(x1))), FILTER(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(filter(divides(z0, z1), x1)) -> c49(ACTIVE(filter(active(divides(mark(z0), mark(z1))), mark(x1))), FILTER(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) MARK(divides(z0, x1)) -> c50(ACTIVE(divides(z0, mark(x1))), DIVIDES(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(divides(x0, z1)) -> c50(ACTIVE(divides(mark(x0), z1)), DIVIDES(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(divides(x0, primes)) -> c50(ACTIVE(divides(mark(x0), active(primes))), DIVIDES(mark(x0), mark(primes)), MARK(x0), MARK(primes)) MARK(divides(x0, sieve(z0))) -> c50(ACTIVE(divides(mark(x0), active(sieve(mark(z0))))), DIVIDES(mark(x0), mark(sieve(z0))), MARK(x0), MARK(sieve(z0))) MARK(divides(x0, from(z0))) -> c50(ACTIVE(divides(mark(x0), active(from(mark(z0))))), DIVIDES(mark(x0), mark(from(z0))), MARK(x0), MARK(from(z0))) MARK(divides(x0, s(z0))) -> c50(ACTIVE(divides(mark(x0), active(s(mark(z0))))), DIVIDES(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(divides(x0, 0)) -> c50(ACTIVE(divides(mark(x0), active(0))), DIVIDES(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(divides(x0, cons(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(cons(mark(z0), z1)))), DIVIDES(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(divides(x0, head(z0))) -> c50(ACTIVE(divides(mark(x0), active(head(mark(z0))))), DIVIDES(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(divides(x0, tail(z0))) -> c50(ACTIVE(divides(mark(x0), active(tail(mark(z0))))), DIVIDES(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(divides(x0, if(z0, z1, z2))) -> c50(ACTIVE(divides(mark(x0), active(if(mark(z0), z1, z2)))), DIVIDES(mark(x0), mark(if(z0, z1, z2))), MARK(x0), MARK(if(z0, z1, z2))) MARK(divides(x0, true)) -> c50(ACTIVE(divides(mark(x0), active(true))), DIVIDES(mark(x0), mark(true)), MARK(x0), MARK(true)) MARK(divides(x0, false)) -> c50(ACTIVE(divides(mark(x0), active(false))), DIVIDES(mark(x0), mark(false)), MARK(x0), MARK(false)) MARK(divides(x0, filter(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(filter(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(filter(z0, z1))), MARK(x0), MARK(filter(z0, z1))) MARK(divides(x0, divides(z0, z1))) -> c50(ACTIVE(divides(mark(x0), active(divides(mark(z0), mark(z1))))), DIVIDES(mark(x0), mark(divides(z0, z1))), MARK(x0), MARK(divides(z0, z1))) MARK(divides(primes, x1)) -> c50(ACTIVE(divides(active(primes), mark(x1))), DIVIDES(mark(primes), mark(x1)), MARK(primes), MARK(x1)) MARK(divides(sieve(z0), x1)) -> c50(ACTIVE(divides(active(sieve(mark(z0))), mark(x1))), DIVIDES(mark(sieve(z0)), mark(x1)), MARK(sieve(z0)), MARK(x1)) MARK(divides(from(z0), x1)) -> c50(ACTIVE(divides(active(from(mark(z0))), mark(x1))), DIVIDES(mark(from(z0)), mark(x1)), MARK(from(z0)), MARK(x1)) MARK(divides(s(z0), x1)) -> c50(ACTIVE(divides(active(s(mark(z0))), mark(x1))), DIVIDES(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(divides(0, x1)) -> c50(ACTIVE(divides(active(0), mark(x1))), DIVIDES(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(divides(cons(z0, z1), x1)) -> c50(ACTIVE(divides(active(cons(mark(z0), z1)), mark(x1))), DIVIDES(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(divides(head(z0), x1)) -> c50(ACTIVE(divides(active(head(mark(z0))), mark(x1))), DIVIDES(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(divides(tail(z0), x1)) -> c50(ACTIVE(divides(active(tail(mark(z0))), mark(x1))), DIVIDES(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(divides(if(z0, z1, z2), x1)) -> c50(ACTIVE(divides(active(if(mark(z0), z1, z2)), mark(x1))), DIVIDES(mark(if(z0, z1, z2)), mark(x1)), MARK(if(z0, z1, z2)), MARK(x1)) MARK(divides(true, x1)) -> c50(ACTIVE(divides(active(true), mark(x1))), DIVIDES(mark(true), mark(x1)), MARK(true), MARK(x1)) MARK(divides(false, x1)) -> c50(ACTIVE(divides(active(false), mark(x1))), DIVIDES(mark(false), mark(x1)), MARK(false), MARK(x1)) MARK(divides(filter(z0, z1), x1)) -> c50(ACTIVE(divides(active(filter(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(filter(z0, z1)), mark(x1)), MARK(filter(z0, z1)), MARK(x1)) MARK(divides(divides(z0, z1), x1)) -> c50(ACTIVE(divides(active(divides(mark(z0), mark(z1))), mark(x1))), DIVIDES(mark(divides(z0, z1)), mark(x1)), MARK(divides(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, sieve_1, from_1, s_1, cons_2, head_1, tail_1, if_3, filter_2, divides_2 Defined Pair Symbols: ACTIVE_1, MARK_1, SIEVE_1, FROM_1, S_1, CONS_2, HEAD_1, TAIL_1, IF_3, FILTER_2, DIVIDES_2, ENCARG_1, ENCODE_ACTIVE_1, ENCODE_MARK_1, ENCODE_SIEVE_1, ENCODE_FROM_1, ENCODE_S_1, ENCODE_CONS_2, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_IF_3, ENCODE_FILTER_2, ENCODE_DIVIDES_2 Compound Symbols: c32_1, c33_1, c34_1, c35_1, c38_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c30_1, c31_2, c36_7, c37_3, c42, c47, c48, c4_2, c4_1, c5_2, c5_1, c6_2, c7_2, c8_2, c9_3, c9_2, c10_2, c11_2, c12_4, c12_3, c13_3, c13_2, c14_3, c14_2, c39_3, c40_3, c41_3, c41_2, c43_3, c43_1, c43_2, c44_3, c45_3, c46_3, c46_1, c49_4, c50_4, c_1, c1_1, c2_1